diff --git a/classes/controllers/FrmAppController.php b/classes/controllers/FrmAppController.php index 7b0d03f867..3d65133fdf 100644 --- a/classes/controllers/FrmAppController.php +++ b/classes/controllers/FrmAppController.php @@ -732,6 +732,8 @@ public static function admin_js() { global $pagenow; if ( strpos( $page, 'formidable' ) === 0 || ( $pagenow === 'edit.php' && $post_type === 'frm_display' ) ) { + self::enqueue_global_settings_scripts( $page ); + wp_enqueue_script( 'admin-widgets' ); wp_enqueue_style( 'widgets' ); self::maybe_deregister_popper2(); @@ -809,6 +811,18 @@ private static function enqueue_builder_assets( $plugin_url, $version ) { wp_enqueue_script( 'formidable-settings-components' ); } + /** + * Enqueues global settings scripts. + * + * @param string $page The `page` param in URL. + */ + private static function enqueue_global_settings_scripts( $page ) { + if ( 'formidable-settings' === $page ) { + wp_enqueue_style( 'wp-color-picker' ); + wp_enqueue_script( 'formidable_settings' ); + } + } + /** * Avoid loading dropzone CSS on the form list page. It isn't required there. * diff --git a/classes/controllers/FrmEmailStylesController.php b/classes/controllers/FrmEmailStylesController.php new file mode 100644 index 0000000000..d63e74e49b --- /dev/null +++ b/classes/controllers/FrmEmailStylesController.php @@ -0,0 +1,476 @@ + array( + 'name' => __( 'Classic', 'formidable' ), + 'selectable' => true, + 'icon_url' => $icon_dir_url . 'classic.svg', + 'is_plain_text' => false, + ), + 'plain' => array( + 'name' => __( 'Plain Text', 'formidable' ), + 'selectable' => true, + 'icon_url' => $icon_dir_url . 'plain.svg', + 'is_plain_text' => true, + ), + 'modern' => array( + 'name' => __( 'Modern', 'formidable' ), + 'selectable' => false, + 'icon_url' => $icon_dir_url . 'modern.svg', + 'is_plain_text' => false, + ), + 'sleek' => array( + 'name' => __( 'Sleek', 'formidable' ), + 'selectable' => false, + 'icon_url' => $icon_dir_url . 'sleek.svg', + 'is_plain_text' => false, + ), + 'compact' => array( + 'name' => __( 'Compact', 'formidable' ), + 'selectable' => false, + 'icon_url' => $icon_dir_url . 'compact.svg', + 'is_plain_text' => false, + ), + ); + + /** + * Filter the email styles. + * + * @since x.x + * + * @param array[] $email_styles The email styles. + * @return array + */ + return apply_filters( 'frm_email_styles', $email_styles ); + } + + /** + * Gets email style preview URL. + * + * @param string $style_key Style key. + * @return string + */ + public static function get_email_style_preview_url( $style_key ) { + return wp_nonce_url( admin_url( 'admin-ajax.php?action=frm_email_style_preview&style_key=' . $style_key ), 'frm_email_style_preview' ); + } + + /** + * Gets the email style set in the Global settings. + * + * @return string + */ + public static function get_default_email_style() { + $frm_settings = FrmAppHelper::get_settings(); + if ( empty( $frm_settings->email_style ) ) { + return 'classic'; + } + + // Check if the selected style is available and selectable. + $styles = self::get_email_styles(); + $style = $frm_settings->email_style; + if ( isset( $styles[ $style ] ) && ! empty( $styles[ $style ]['selectable'] ) ) { + return $style; + } + + return 'classic'; + } + + /** + * Gets the test email content. + * + * @param false|string $style_key Default is `false`, using the one in settings. + * @return string + */ + private static function get_test_email_content( $style_key = false ) { + if ( ! $style_key ) { + $style_key = self::get_default_email_style(); + } + + $table_rows = array( + array( + 'label' => 'Name', + 'value' => 'John Doe', + ), + array( + 'label' => 'Email address', + 'value' => 'john@doe.com', + ), + array( + 'label' => 'Subject', + 'value' => 'Contact subject', + ), + array( + 'label' => 'Message', + 'value' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Praesent in risus velit. Donec molestie tincidunt ex sed consequat. Ut ornare fringilla fringilla.', + ), + ); + + if ( 'plain' !== $style_key ) { + $content = self::get_test_rich_text_email_content( $style_key, $table_rows ); + } else { + $content = ''; + foreach ( $table_rows as $row ) { + $content .= $row['label'] . ': ' . $row['value'] . "\r\n"; + } + }//end if + + return $content; + } + + /** + * Gets the test email content. + * + * @param string $style_key Style key. + * @param array $table_rows Table rows. + * @return string + */ + private static function get_test_rich_text_email_content( $style_key, $table_rows ) { + $style_settings = self::get_email_style_settings(); + + // Sleek table style doesn't have any border. + $should_remove_border = 'sleek' === $style_key; + + // Modern and Compact table styles don't have top and bottom border. + $should_remove_top_bottom_border = 'classic' !== $style_key; + + $table_generator = self::get_table_generator( $style_key ); + + $content = $table_generator->generate_table_header(); + + // By default, table has the bottom border and table cells have top border. + if ( $should_remove_top_bottom_border ) { + $content = $table_generator->remove_border( $content, 'bottom' ); + } + + foreach ( $table_rows as $index => $row ) { + if ( 'compact' === $style_key ) { + // Compact table has two columns layout. + $table_row = $table_generator->generate_two_cell_table_row( $row['label'], $row['value'] ); + } else { + // Other table styles have one column layout. + $table_row = $table_generator->generate_single_cell_table_row( self::get_content_for_one_column_cell( $row['label'], $row['value'] ) ); + } + + if ( ! $index && $should_remove_top_bottom_border ) { + $table_row = $table_generator->remove_border( $table_row ); + } + + $content .= $table_row; + } + + $content .= $table_generator->generate_table_footer(); + + if ( $should_remove_border ) { + $content = $table_generator->remove_border( $content, 'top' ); + } + + if ( 'classic' !== $style_key ) { + $content = self::wrap_email_message( $content ); + } + + $wrapped_content = ''; + if ( 'classic' !== $style_key ) { + // This works in previewing and as a fallback for email content. + $wrapped_content .= ''; + } + $wrapped_content .= '' . $content . ''; + + return $wrapped_content; + } + + /** + * Gets content for the cell of one column table. + * + * @param string $label Field label. + * @param string $value Prepared field value. + * @return string + */ + public static function get_content_for_one_column_cell( $label, $value ) { + return '
' . $label . '
' . $value; + } + + /** + * Gets table generator object for an email style. + * + * @param false|string $email_style Email style. Default is `false`: using the one in global settings. + * @return FrmTableHTMLGenerator + */ + public static function get_table_generator( $email_style = false ) { + if ( false === $email_style ) { + $email_style = self::get_default_email_style(); + } + + $style_settings = self::get_email_style_settings(); + + $atts = array( + 'inline_style' => true, + 'email_style' => $email_style, + ); + + if ( 'classic' !== $email_style ) { + $atts['width'] = '100%'; + $atts['border_color'] = $style_settings['border_color']; + $atts['cell_padding'] = '16px 0'; + $atts['bg_color'] = $style_settings['container_bg_color']; + $atts['alt_bg_color'] = $style_settings['container_bg_color']; + $atts['text_color'] = $style_settings['text_color']; + } + + return new FrmTableHTMLGenerator( 'entry', $atts ); + } + + /** + * AJAX handler for previewing email style. + */ + public static function ajax_preview() { + // Check permission and nonce. + FrmAppHelper::permission_check( 'frm_change_settings' ); + check_ajax_referer( 'frm_email_style_preview' ); + + $style_key = FrmAppHelper::get_param( 'style_key', '', 'get', 'sanitize_text_field' ); + $not_exist_msg = __( "This email style doesn't exist", 'formidable' ); + if ( ! $style_key ) { + die( esc_html( $not_exist_msg ) ); + } + + $styles = self::get_email_styles(); + if ( ! isset( $styles[ $style_key ] ) ) { + die( esc_html( $not_exist_msg ) ); + } + + $style_key = FrmAppHelper::get_param( 'style_key', '', 'sanitize_text_field' ); + $content = self::get_test_email_content( $style_key ); + + header( self::get_content_type_header( $style_key ) ); + + echo $content; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + + die(); + } + + /** + * AJAX handler for sending a test email. + */ + public static function ajax_send_test_email() { + // Check permission and nonce. + FrmAppHelper::permission_check( 'frm_change_settings' ); + check_ajax_referer( 'frm_ajax', 'nonce' ); + + $emails_str = FrmAppHelper::get_post_param( 'emails_str', '', 'sanitize_text_field' ); + $emails = explode( ',', $emails_str ); + $valid_emails = array(); + foreach ( $emails as $email ) { + $email = trim( $email ); + if ( empty( $email ) || ! is_email( $email ) ) { + continue; + } + $valid_emails[] = $email; + } + + if ( empty( $valid_emails ) ) { + wp_send_json_error( __( 'Invalid email address', 'formidable' ) ); + } + + $email_style = self::get_default_email_style(); + + $subject = __( 'Formidable Test Email', 'formidable' ); + $content = self::get_test_email_content(); + $headers = array( + self::get_content_type_header( $email_style ), + ); + + $result = wp_mail( $valid_emails, $subject, $content, $headers ); + if ( $result ) { + wp_send_json_success( __( 'Test email sent successfully!', 'formidable' ) ); + } + + wp_send_json_error( __( 'Failed to send test email!', 'formidable' ) ); + } + + /** + * Gets Content-Type header. + * + * @param string $email_style Email style. + * @return string + */ + private static function get_content_type_header( $email_style ) { + $content_type = 'plain' === $email_style ? 'text/plain' : 'text/html'; + return 'Content-Type: ' . $content_type . '; charset=utf-8'; + } + + /** + * Shows placeholder Pro settings. + */ + public static function show_upsell_settings() { + include FrmAppHelper::plugin_path() . '/classes/views/frm-settings/email/settings.php'; + } + + /** + * Gets email style settings value. + * + * @return array + */ + public static function get_email_style_settings() { + /** + * Filter the email style settings value. + * + * @since x.x + * + * @param array $settings The settings value. + */ + return apply_filters( + 'frm_email_style_settings', + array( + // Placeholder image. + 'img' => FrmAppHelper::plugin_url() . '/images/email-styles/placeholder.png', + 'img_size' => '', + 'img_align' => '', + 'img_location' => '', + 'bg_color' => '#EAECF0', + 'container_bg_color' => '#ffffff', + 'text_color' => '#475467', + 'link_color' => '#4199FD', + 'border_color' => '#dddddd', + 'font' => '', + ) + ); + } + + /** + * Wraps email message with new settings. + * + * @param string $message Email message. + * @return string + */ + public static function wrap_email_message( $message ) { + $style_settings = self::get_email_style_settings(); + + $header_img = ''; + if ( $style_settings['img'] ) { + $img_align = $style_settings['img_align'] ? $style_settings['img_align'] : 'center'; + $img_size = $style_settings['img_size'] ? $style_settings['img_size'] : 'thumbnail'; + $img_url = is_numeric( $style_settings['img'] ) ? wp_get_attachment_image_url( $style_settings['img'], $img_size ) : $style_settings['img']; + + $header_img .= sprintf( + '
', + esc_attr( $img_align ) + ); + + $header_img .= sprintf( + '', + esc_url( $img_url ) + ); + + $header_img .= '
'; + } + + // Wrapper. + $font_family = $style_settings['font'] ? $style_settings['font'] : 'Inter,sans-serif'; + $new_message = sprintf( + '
', + esc_attr( $style_settings['bg_color'] ), + esc_attr( $style_settings['text_color'] ), + esc_attr( $font_family ) + ); + + // Container. + $new_message .= '
'; + + // Header image if outside. + if ( $style_settings['img'] && 'inside' !== $style_settings['img_location'] ) { + $new_message .= $header_img; + } + + // Main container. + $new_message .= sprintf( + '
', + esc_attr( $style_settings['container_bg_color'] ) + ); + + // Header image if inside. + if ( $style_settings['img'] && 'inside' === $style_settings['img_location'] ) { + $new_message .= $header_img; + } + + // The message. + $new_message .= self::add_inline_css( 'a', 'color:' . $style_settings['link_color'] . ';', $message ); + + $new_message .= '
'; + + return $new_message; + } + + /** + * Adds inline CSS to a tag in the content. + * + * @param string $tag Tag name. + * @param string $css CSS code. + * @param string $content The content. + * @return string + */ + private static function add_inline_css( $tag, $css, $content ) { + $regex = '/<' . $tag . '.*?>/msi'; + preg_match_all( $regex, $content, $matches, PREG_SET_ORDER ); + + if ( ! $matches ) { + return $content; + } + + $searches = array(); + $replaces = array(); + + foreach ( $matches as $match ) { + $searches[] = $match[0]; + $replaces[] = self::add_css_to_style_attr( $tag, $css, $match[0] ); + } + + return str_replace( $searches, $replaces, $content ); + } + + /** + * Adds inline CSS to a single HTML tag. + * + * @param string $tag Tag name. + * @param string $css CSS code. + * @param string $html The HTML tag. + * @return string + */ + private static function add_css_to_style_attr( $tag, $css, $html ) { + $regex = '/\sstyle=("|\')/mi'; + if ( preg_match( $regex, $html, $matches ) ) { + $search = $matches[0]; + $replace = $search . $css; + return preg_replace( $regex, $replace, $html ); + } + + return str_replace( '<' . $tag, '<' . $tag . ' style="' . $css . '"', $html ); + } +} diff --git a/classes/controllers/FrmEntriesController.php b/classes/controllers/FrmEntriesController.php index 3ffb39d250..b76ab4c224 100644 --- a/classes/controllers/FrmEntriesController.php +++ b/classes/controllers/FrmEntriesController.php @@ -735,6 +735,7 @@ public static function show_entry_shortcode( $atts ) { 'include_fields' => '', 'include_extras' => '', 'inline_style' => 1, + 'table_style' => '', // Return embedded fields as nested array. 'child_array' => false, 'line_breaks' => true, diff --git a/classes/controllers/FrmHooksController.php b/classes/controllers/FrmHooksController.php index 2b470b1ae8..ebba975c16 100644 --- a/classes/controllers/FrmHooksController.php +++ b/classes/controllers/FrmHooksController.php @@ -204,6 +204,8 @@ public static function load_admin_hooks() { add_action( 'admin_footer', 'FrmDeactivationFeedbackController::footer_html' ); add_action( 'deactivated_plugin', 'FrmDeactivationFeedbackController::set_feedback_expired_date' ); + add_action( 'frm_email_styles_extra_settings', 'FrmEmailStylesController::show_upsell_settings' ); + FrmDashboardController::load_admin_hooks(); FrmTransLiteHooksController::load_admin_hooks(); FrmStrpLiteHooksController::load_admin_hooks(); @@ -308,6 +310,9 @@ public static function load_ajax_hooks() { add_action( 'wp_ajax_frm_small_screen_proceed', 'FrmAppController::small_screen_proceed' ); add_action( 'wp_ajax_frm_sale_banner_dismiss', 'FrmSalesApi::dismiss_banner' ); + + add_action( 'wp_ajax_frm_email_style_preview', 'FrmEmailStylesController::ajax_preview' ); + add_action( 'wp_ajax_frm_send_test_email', 'FrmEmailStylesController::ajax_send_test_email' ); } /** diff --git a/classes/controllers/FrmSettingsController.php b/classes/controllers/FrmSettingsController.php index bb15071bb7..ebeb28fade 100644 --- a/classes/controllers/FrmSettingsController.php +++ b/classes/controllers/FrmSettingsController.php @@ -100,6 +100,12 @@ private static function get_settings_tabs() { 'name' => __( 'Captcha/Spam', 'formidable' ), 'icon' => 'frm_icon_font frm_shield_check_icon', ), + 'email' => array( + 'class' => self::class, + 'function' => 'email_settings', + 'name' => __( 'Email', 'formidable' ), + 'icon' => 'frm_icon_font frm_email_icon', + ), 'white_label' => array( 'name' => __( 'White Labeling', 'formidable' ), 'icon' => 'frm_icon_font frm_ghost_icon', @@ -296,6 +302,17 @@ public static function captcha_settings() { include FrmAppHelper::plugin_path() . '/classes/views/frm-settings/captcha/captcha.php'; } + /** + * Shows email settings. + * + * @since x.x + */ + public static function email_settings() { + $frm_settings = FrmAppHelper::get_settings(); + + include FrmAppHelper::plugin_path() . '/classes/views/frm-settings/email/email-styles.php'; + } + /** * @since 4.0 */ @@ -461,4 +478,21 @@ public static function page_search() { wp_send_json( $results ); } + + /** + * Shows a fake color picker. + * + * @since x.x + * + * @param string $color Color value. + */ + public static function fake_color_picker( $color ) { + ?> +
+ +
+ settings['plain_text'] ) { - $this->is_plain_text = true; + if ( empty( $this->settings['email_style'] ) ) { + // If `email_style` isn't set, use the `plain_text` checkbox. + $this->is_plain_text = ! empty( $this->settings['plain_text'] ); + return; } + + $this->is_plain_text = 'plain' === $this->settings['email_style']; } /** @@ -398,10 +402,11 @@ private function set_message() { $mail_body = FrmEntriesHelper::replace_default_message( $prev_mail_body, array( - 'id' => $this->entry->id, - 'entry' => $pass_entry, - 'plain_text' => $this->is_plain_text, - 'user_info' => $this->include_user_info, + 'id' => $this->entry->id, + 'entry' => $pass_entry, + 'plain_text' => $this->is_plain_text, + 'user_info' => $this->include_user_info, + 'table_style' => $this->settings['email_style'], ) ); @@ -879,6 +884,7 @@ public function package_atts() { 'plain_text' => $this->is_plain_text, 'form' => $this->form, 'entry' => $this->entry, + 'email_style' => $this->settings['email_style'], ); } diff --git a/classes/models/FrmSettings.php b/classes/models/FrmSettings.php index 7f928f29d3..253c2976df 100644 --- a/classes/models/FrmSettings.php +++ b/classes/models/FrmSettings.php @@ -178,6 +178,7 @@ public function default_options() { 'denylist_check' => 0, 'disallowed_words' => '', 'allowed_words' => '', + 'email_style' => 'classic', ); } diff --git a/classes/models/FrmTableHTMLGenerator.php b/classes/models/FrmTableHTMLGenerator.php index f65624b0b9..aedef4e4e8 100644 --- a/classes/models/FrmTableHTMLGenerator.php +++ b/classes/models/FrmTableHTMLGenerator.php @@ -53,6 +53,24 @@ class FrmTableHTMLGenerator { */ protected $td_style = ''; + /** + * Cell padding. + * + * @since x.x + * + * @var string + */ + protected $cell_padding = '7px 9px'; + + /** + * Table width. + * + * @since x.x + * + * @var string + */ + protected $width = ''; + /** * Used to add a class in tables. Set in Pro. * @@ -70,6 +88,15 @@ class FrmTableHTMLGenerator { public function __construct( $type, $atts = array() ) { $this->type = (string) $type; + + if ( isset( $atts['cell_padding'] ) ) { + $this->cell_padding = $atts['cell_padding']; + } + + if ( isset( $atts['width'] ) ) { + $this->width = $atts['width']; + } + $this->init_style_settings( $atts ); $this->init_use_inline_style( $atts ); $this->init_direction( $atts ); @@ -146,7 +173,7 @@ private function init_direction( $atts ) { private function init_table_style() { if ( $this->use_inline_style === true ) { - $this->table_style = ' style="' . esc_attr( 'font-size:' . $this->style_settings['font_size'] . ';line-height:135%;' ); + $this->table_style = ' style="' . esc_attr( 'border-spacing:0;font-size:' . $this->style_settings['font_size'] . ';line-height:135%;' ); $this->table_style .= esc_attr( 'border-bottom:' . $this->style_settings['border_width'] . ' solid ' . $this->style_settings['border_color'] . ';' ) . '"'; } @@ -154,6 +181,10 @@ private function init_table_style() { if ( ! empty( $this->style_settings['class'] ) ) { $this->table_style .= ' class="' . esc_attr( $this->style_settings['class'] ) . '"'; } + + if ( ! empty( $this->width ) ) { + $this->table_style .= ' width="' . esc_attr( $this->width ) . '"'; + } } /** @@ -166,13 +197,33 @@ private function init_td_style() { if ( $this->use_inline_style === true ) { $td_style_attributes = 'text-align:' . ( $this->direction === 'rtl' ? 'right' : 'left' ) . ';'; - $td_style_attributes .= 'color:' . $this->style_settings['text_color'] . ';padding:7px 9px;vertical-align:top;'; + $td_style_attributes .= 'color:' . $this->style_settings['text_color'] . ';padding:' . $this->cell_padding . ';vertical-align:top;'; $td_style_attributes .= 'border-top:' . $this->style_settings['border_width'] . ' solid ' . $this->style_settings['border_color'] . ';'; - $this->td_style = ' style="' . $td_style_attributes . '"'; + $this->td_style = ' style="' . esc_attr( $td_style_attributes ) . '"'; } } + /** + * Removes border CSS from HTML. + * + * @since x.x + * + * @param string $html The HTML. + * @param string $position The border position. Default is `top`. + * @return string + */ + public function remove_border( $html, $position = 'top' ) { + $search = sprintf( + 'border-%1$s:%2$s solid %3$s;', + $position, + $this->style_settings['border_width'], + $this->style_settings['border_color'] + ); + + return str_replace( $search, '', $html ); + } + /** * Determine if setting is for a color, e.g. text color, background color, or border color * @@ -220,10 +271,11 @@ private function table_row_background_color() { * * @since 2.04 * @since 5.0.16 Changed scope from `private` to `protected`. + * @since x.x Changed scope from `protected` to `public`. * * @return string */ - protected function tr_style() { + public function tr_style() { if ( $this->type === 'shortcode' ) { $tr_style = ' style="[frm-alt-color]"'; @@ -236,6 +288,28 @@ protected function tr_style() { return $tr_style; } + /** + * Gets table style. + * + * @since x.x + * + * @return string + */ + public function get_table_style() { + return $this->table_style; + } + + /** + * Gets td style. + * + * @since x.x + * + * @return string + */ + public function get_td_style() { + return $this->td_style; + } + /** * Switch the odd property from true to false or false to true * diff --git a/classes/views/frm-form-actions/_email_settings.php b/classes/views/frm-form-actions/_email_settings.php index 17e0b9f4b3..c8fe67ab0c 100644 --- a/classes/views/frm-form-actions/_email_settings.php +++ b/classes/views/frm-form-actions/_email_settings.php @@ -2,7 +2,46 @@ if ( ! defined( 'ABSPATH' ) ) { die( 'You are not allowed to call this page directly.' ); } + +$email_styles = FrmEmailStylesController::get_email_styles(); +$selected_style = ! empty( $form_action->post_content['email_style'] ) ? $form_action->post_content['email_style'] : 'classic'; +if ( ! empty( $form_action->post_content['plain_text'] ) ) { + $selected_style = 'plain'; +} + +$frm_settings = FrmAppHelper::get_settings(); +$default_style = FrmEmailStylesController::get_default_email_style(); ?> +

+ + +

@@ -122,10 +161,3 @@ - -

- -

diff --git a/classes/views/frm-form-actions/email_action.php b/classes/views/frm-form-actions/email_action.php index 32227c2b71..2d72936a00 100644 --- a/classes/views/frm-form-actions/email_action.php +++ b/classes/views/frm-form-actions/email_action.php @@ -42,6 +42,7 @@ public function get_defaults() { 'email_message' => '[default-message]', 'inc_user_info' => 0, 'plain_text' => 0, + 'email_style' => '', 'event' => array( 'create' ), ); } diff --git a/classes/views/frm-settings/email/email-styles.php b/classes/views/frm-settings/email/email-styles.php new file mode 100644 index 0000000000..bc94286b0c --- /dev/null +++ b/classes/views/frm-settings/email/email-styles.php @@ -0,0 +1,109 @@ + +

+ +

+

+ +
+ $style ) : + $html_attrs = array( + 'class' => 'frm-email-style frm-mb-md', + 'data-style-key' => $style_key, + ); + + if ( $style_key === $selected_style ) { + $html_attrs['class'] .= ' frm-email-style--selected'; + } + + if ( empty( $style['selectable'] ) ) { + $html_attrs['class'] .= ' frm-email-style--disabled'; + } + ?> +
> + + + +
+ + + + +
+ +
+ + + +

+ +

+ +
+
+
+ + 'Dismiss' ) ); ?> + +
+

+ +
+ + +

+
+ +
+ +

+ +

+
+
+
+
diff --git a/classes/views/frm-settings/email/settings.php b/classes/views/frm-settings/email/settings.php new file mode 100644 index 0000000000..56e5829861 --- /dev/null +++ b/classes/views/frm-settings/email/settings.php @@ -0,0 +1,136 @@ + __( 'Make every email match your brand — beautifully and effortlessly.', 'formidable' ), + 'call' => __( 'Upgrade to PRO', 'formidable' ), + 'link' => array( + 'medium' => 'tip', + 'content' => 'email-settings', + ), + ) +); + +$upgrade_attrs = array( + 'data-upgrade' => __( 'Email Styles Settings', 'formidable' ), + 'class' => 'frm_show_upgrade', + 'style' => 'position:absolute;top:0;right:0;bottom:0;left:0;', +); +?> + + + + + + + + + + + + + + + + + + + + + +
+ +

+ +

+
+
+ + +
>
+
+ +
+
+

+ + +

+
+ +
+

+ + +

+
+ +
+

+ + +

+
+ +
>
+
+
+ +

+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
>
+
+
+ +

+
+
+
+ +
+ +
>
+
+
+ +
diff --git a/css/admin/frm-settings-components.css b/css/admin/frm-settings-components.css index c7b5e8a3f2..4d0879f684 100644 --- a/css/admin/frm-settings-components.css +++ b/css/admin/frm-settings-components.css @@ -1 +1 @@ -.formidable_page_formidable-styles.js .control-section .accordion-section-title:focus{background:none}.formidable_page_formidable-styles .frm-right-panel h3.accordion-section-title:hover>svg:last-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:first-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:last-child{color:var(--grey-900)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component{align-self:center}.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container button{position:relative;height:36px !important;background-image:none !important;overflow:hidden}.formidable_page_formidable-styles .frm-right-panel .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button{background-color:#fff !important}.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container::after{content:"";width:20px;height:20px;display:block;position:absolute;top:0;right:8px;bottom:0;margin:auto;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center;z-index:10}.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-color-result-text{line-height:36px !important;padding:0 12px;border:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component .color-alpha{width:20px !important;height:20px !important;border-radius:50% !important;border:1px solid #d0d5dd;top:0;left:0;bottom:0;margin:auto;margin-left:12px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-input-wrap input{width:calc(100% - 10px) !important;margin:1px 5px;height:32px;line-height:32px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component>div{max-width:216px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .wp-picker-container{max-width:calc(100% - 44px);position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component button.frm_choose_image_box{width:36px;height:36px;padding:0;background:#fff;overflow:hidden;text-indent:-999px;flex-wrap:wrap;border:none}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_styling_frame{margin-left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper{position:relative;width:36px;height:36px;margin:0;border:1px solid var(--grey-300);border-radius:var(--small-radius);overflow:hidden;box-sizing:border-box}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame{max-width:120%;height:120%;margin:-10%;position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_data{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;margin:0;border-radius:var(--small-radius)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option{width:100%;height:100%;border:1px solid var(--red-500);text-indent:-9999px;position:absolute;top:0;left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::before{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:hsla(0,0%,100%,.8)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::after{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:url("../../images/style/close.svg") no-repeat;background-position:center}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::before,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::after{opacity:1}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame img{width:100%;height:100%}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper+*,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_title,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_bg_image_additional_settings,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option *{display:none}.frm-style-component .frm-radio-container{max-width:216px;height:36px;background:#f2f4f7;gap:var(--small-gap);padding:var(--gap-2xs);box-sizing:border-box;border-radius:var(--small-radius);position:relative}.frm-style-component.frm-field-shape .frm-radio-container{max-width:unset}.frm-style-component.frm-direction-component .frm-radio-container{gap:var(--gap-xs)}.frm-style-component .frm-radio-container svg{width:16px}.frm-style-component .frm-radio-container .frm-radio-active-tracker{display:block;width:28%;height:calc(100% - 8px);background:#fff;border-radius:var(--small-radius);box-shadow:var(--button-shadow);position:absolute;top:var(--gap-2xs);bottom:0;left:var(--gap-2xs);z-index:1;transition:.35s transform cubic-bezier(0.075, 0.82, 0.165, 1)}.frm-style-component.frm-field-shape .frm-radio-container .frm-radio-active-tracker{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-direction-component .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{width:calc(50% - var(--gap-xs))}.frm-style-component .frm-radio-container>label{width:30%;height:100%;margin:0;cursor:pointer;position:relative;display:flex;z-index:2}.frm-style-component.frm-field-shape .frm-radio-container>label{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container>label,.frm-style-component.frm-direction-component .frm-radio-container>label,.frm-style-component.frm-text-toggle-component .frm-radio-container>label{width:50%}.frm-style-component.frm-text-toggle-component .frm-radio-container{height:44px;max-width:unset;gap:var(--gap-xs);padding:var(--gap-xs)}.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{height:calc(100% - var(--gap-sm));top:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul>li:not(.frm-active):hover,.frm-style-component .frm-radio-container input:not(:checked)+label:hover{background:#eaecf0;border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-component .frm-radio-container input{display:none}.frm-style-component .frm-slider-container{width:calc(100% - 91px);display:flex;align-items:center;color:#1d2939}.frm-style-component .frm-slider-container svg.frmsvg{color:currentColor;margin-right:8px;margin-left:-5px;position:relative;z-index:15}.frm-style-component .frm-group-sliders .frm-slider-container svg.frmsvg:hover{color:#4199fd;cursor:pointer}.frm-style-component .frm-slider-container .frm-slider-active-track{display:block;height:100%;width:0;position:relative;border-radius:200px}.frm-style-component .frm-slider-container .frm-slider-active-track,.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{background:#4199fd;box-shadow:0 1.88px 4px -1px rgba(16,24,40,.03),0 6px 8px -2px rgba(16,24,40,.08)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{position:absolute;display:block;width:16px;height:16px;border-radius:50%;transform:translateX(15px);cursor:grab;right:0;top:0;bottom:0;margin:auto}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet .frm-slider-value-label{position:absolute;display:block;width:48px;height:36px;background:#101828;color:#fff;font-weight:400;font-size:var(--text-sm);line-height:36px;border-radius:var(--small-radius);transform:translate(-18px, -42px) scale3d(0.7, 1, 1);opacity:0;z-index:-2;pointer-events:none;text-align:center;user-select:none}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging .frm-slider-value-label{z-index:12;transform:translate(-18px, -42px) scale3d(1, 1, 1);opacity:1;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::before{content:"";display:block;position:absolute;width:18px;height:18px;border-radius:50%;left:0;top:0;transform:translate(-5px, -5px) scale3d(0.7, 0.7, 1);border:4px solid #4199fd;opacity:0;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging::before{opacity:.5;transform:translate(-5px, -5px) scale3d(1, 1, 1);transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::after{content:"";position:absolute;display:block;width:180%;height:200%;border-radius:50%;left:0;top:0;transform:translate(-24%, -24%)}.frm-style-component .frm-slider-value{width:86px;height:36px;display:flex;justify-content:center;box-sizing:border-box;background:#fff;border-radius:var(--small-radius);border:1px solid var(--grey-300)}.frm-style-component .frm-slider-value>*{border:none}.frm-style-component .frm-slider-value input{width:40px;height:100%;padding:0;font-size:var(--text-sm);color:#101828;padding-left:12px;box-sizing:border-box}.frm-style-component .frm-slider-value select{text-align:right;padding:0;font-size:var(--text-sm);color:#667085;width:44px;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center right 12px;padding-right:24px !important}.frm-style-component .frm-slider{display:block;width:calc(100% - 5px);height:4px;background:#eaecf0;border-radius:200px;cursor:pointer}.frm-slider-component .frm-independent-slider-field{margin-top:10px}.frm-slider-component.frm-disabled .frm-slider-container{pointer-events:none;opacity:.5}.frm-slider-component.frm-disabled .frm-slider-value input[type=text]{width:28px}.frm-slider-component.frm-disabled .frm-slider-value select{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value input[type=text]{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value select{width:28px}.frm-style-component .frm-slider-component.frm-has-multiple-values{margin-bottom:10px}.frm-tabs-wrapper{position:relative;overflow:hidden}.frm-tabs-wrapper .frm-tabs-navigator{margin:0;padding:0;display:flex;gap:var(--gap-xs);justify-content:space-between;align-items:center;background:#f2f4f7;border-radius:var(--small-radius);box-sizing:border-box;height:44px;position:relative;z-index:2}.frm-tabs-wrapper .frm-tabs-navigator .frm-tab-item{flex:1;text-align:center;cursor:pointer}.frm-tabs-wrapper .frm-tabs-navigator .frm-active-background{display:block;height:100%;background:#fff;position:absolute;top:0;left:0;z-index:1}.frm-style-tabs-wrapper{position:relative}.frm-style-tabs-wrapper .frm-tabs-navs{padding:0;min-height:44px}.frm-style-tabs-wrapper .frm-tabs-navs ul{margin:0;height:var(--h-md);position:relative;justify-content:space-between}.frm-style-tabs-wrapper .frm-tabs-navs ul li,.frm-style-tabs-wrapper .frm-tabs-navs ul li a{color:var(--grey-500);font-weight:500;font-size:var(--text-sm);line-height:28px}.frm-style-tabs-wrapper .frm-tabs-navs ul li{flex:1;height:28px;text-align:center;margin-top:var(--gap-xs);margin-bottom:0;cursor:pointer}.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active,.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active a{color:var(--grey-900)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child{margin-left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child{margin-right:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter{position:absolute;top:0;left:0;width:100%;background:#f2f4f7;height:44px;margin:0;border-radius:var(--small-radius)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline{height:28px;background:#fff;position:absolute;left:0;bottom:8px;width:45px;transition:.4s transform cubic-bezier(0.25, 0.46, 0.45, 0.94);border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-first{left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-last{left:calc(-1*var(--gap-xs))}.frm-tabs-container{position:relative;overflow:hidden;margin-top:var(--gap-md);height:100%}.frm-style-tabs-wrapper .frm-tabs-container .frm-tabs-slide-track{transition:.32s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-tabs-wrapper .frm-tabs-slide-track>div{flex:0 0 100%;opacity:0;transition:.25s opacity linear;position:relative;height:auto;max-height:unset;overflow:hidden;box-sizing:border-box}.frm-style-tabs-wrapper .frm-tabs-slide-track>div>div{overflow:auto;position:relative;width:100%;padding:0;box-sizing:border-box}.frm-tabs-slide-track>div>div:first-child{height:100%}.frm-tabs-slide-track>div.frm-active{opacity:1;transition:.35s opacity linear}.frm-style-component .frm_toggle_slider{background:#f2f4f7}.frm-style-component label.frm-copy-text{line-height:32px;cursor:pointer;white-space:nowrap}.frm-style-component .wp-picker-holder{right:0}.formidable_page_formidable-styles .accordion-section-content .frm-style-item-heading{font-weight:500;font-size:var(--text-md);color:var(--grey-900)}.frm-unit-input{position:relative;display:flex;align-items:center}.frm-unit-input input[type=number]::-webkit-outer-spin-button,.frm-unit-input input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.frm-unit-input .frm-input-group-suffix{position:absolute;top:1px;right:1px;display:flex;align-items:center;height:calc(100% - 2px);padding-right:var(--gap-xs)}.frm-unit-input .frm-input-group-suffix select{width:fit-content;height:100%;min-height:unset;font-size:var(--text-sm);text-align:right;color:var(--grey-500) !important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%23667085' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 0 top 50%;padding-left:var(--gap-2xs);padding-right:21px !important;border:rgba(0,0,0,0)}.frm-unit-input .frm-input-group-suffix select:focus-visible{outline:1px solid var(--primary-500);outline-offset:-2px} +.formidable_page_formidable-styles.js .control-section .accordion-section-title:focus{background:none}.formidable_page_formidable-styles .frm-right-panel h3.accordion-section-title:hover>svg:last-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:first-child,.formidable_page_formidable-styles .frm-right-panel .open h3.accordion-section-title>svg:last-child{color:var(--grey-900)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component{align-self:center}.frm_settings_form .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button,.formidable_page_formidable-styles .frm-right-panel .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button{background-color:#fff !important}.frm_settings_form .frm-style-component .wp-picker-container button,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container button{position:relative;height:36px !important;background-image:none !important;overflow:hidden;background-color:#fff !important}.frm_settings_form .frm-style-component .wp-picker-container::after,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-container::after{content:"";width:20px;height:20px;display:block;position:absolute;top:0;right:8px;bottom:0;margin:auto;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center;z-index:10}.frm_settings_form .frm-style-component .wp-color-result-text,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-color-result-text{line-height:36px !important;padding:0 12px;border:0}.frm_settings_form .frm-style-component .color-alpha,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .color-alpha{width:20px !important;height:20px !important;border-radius:50% !important;border:1px solid #d0d5dd;top:0;left:0;bottom:0;margin:auto;margin-left:12px}.frm_settings_form .frm-style-component .wp-picker-input-wrap input,.formidable_page_formidable-styles .frm-right-panel .frm-style-component .wp-picker-input-wrap input{width:calc(100% - 10px) !important;margin:1px 5px;height:32px;line-height:32px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component>div{max-width:216px}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .wp-picker-container{max-width:calc(100% - 44px);position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component button.frm_choose_image_box{width:36px;height:36px;padding:0;background:#fff;overflow:hidden;text-indent:-999px;flex-wrap:wrap;border:none}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_styling_frame{margin-left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper{position:relative;width:36px;height:36px;margin:0;border:1px solid var(--grey-300);border-radius:var(--small-radius);overflow:hidden;box-sizing:border-box}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame{max-width:120%;height:120%;margin:-10%;position:relative}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_data{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;margin:0;border-radius:var(--small-radius)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option{width:100%;height:100%;border:1px solid var(--red-500);text-indent:-9999px;position:absolute;top:0;left:0}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::before{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:hsla(0,0%,100%,.8)}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option::after{opacity:0;content:"";display:block;position:absolute;width:100%;height:100%;z-index:1;top:0;left:0;background:url("../../images/style/close.svg") no-repeat;background-position:center}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::before,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option:hover::after{opacity:1}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_frame .frm_image_styling_frame img{width:100%;height:100%}.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper+*,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_image_preview_wrapper .frm_image_preview_title,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_bg_image_additional_settings,.formidable_page_formidable-styles .frm-right-panel .frm-style-component.frm-background-image-component .frm_remove_image_option *{display:none}.frm-style-component .frm-radio-container{max-width:216px;height:36px;background:#f2f4f7;gap:var(--small-gap);padding:var(--gap-2xs);box-sizing:border-box;border-radius:var(--small-radius);position:relative}.frm-style-component.frm-field-shape .frm-radio-container{max-width:unset}.frm-style-component.frm-direction-component .frm-radio-container{gap:var(--gap-xs)}.frm-style-component .frm-radio-container svg{width:16px}.frm-style-component .frm-radio-container .frm-radio-active-tracker{display:block;width:28%;height:calc(100% - 8px);background:#fff;border-radius:var(--small-radius);box-shadow:var(--button-shadow);position:absolute;top:var(--gap-2xs);bottom:0;left:var(--gap-2xs);z-index:1;transition:.35s transform cubic-bezier(0.075, 0.82, 0.165, 1)}.frm-style-component.frm-field-shape .frm-radio-container .frm-radio-active-tracker{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-direction-component .frm-radio-container .frm-radio-active-tracker,.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{width:calc(50% - var(--gap-xs))}.frm-style-component .frm-radio-container>label{width:30%;height:100%;margin:0;cursor:pointer;position:relative;display:flex;z-index:2}.frm-style-component.frm-field-shape .frm-radio-container>label{width:23%}.frm-style-component.frm-align-component.frm-2-options .frm-radio-container>label,.frm-style-component.frm-direction-component .frm-radio-container>label,.frm-style-component.frm-text-toggle-component .frm-radio-container>label{width:50%}.frm-style-component.frm-text-toggle-component .frm-radio-container{height:44px;max-width:unset;gap:var(--gap-xs);padding:var(--gap-xs)}.frm-style-component.frm-text-toggle-component .frm-radio-container .frm-radio-active-tracker{height:calc(100% - var(--gap-sm));top:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul>li:not(.frm-active):hover,.frm-style-component .frm-radio-container input:not(:checked)+label:hover{background:#eaecf0;border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-component .frm-radio-container input{display:none}.frm-style-component .frm-slider-container{width:calc(100% - 91px);display:flex;align-items:center;color:#1d2939}.frm-style-component .frm-slider-container svg.frmsvg{color:currentColor;margin-right:8px;margin-left:-5px;position:relative;z-index:15}.frm-style-component .frm-group-sliders .frm-slider-container svg.frmsvg:hover{color:#4199fd;cursor:pointer}.frm-style-component .frm-slider-container .frm-slider-active-track{display:block;height:100%;width:0;position:relative;border-radius:200px}.frm-style-component .frm-slider-container .frm-slider-active-track,.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{background:#4199fd;box-shadow:0 1.88px 4px -1px rgba(16,24,40,.03),0 6px 8px -2px rgba(16,24,40,.08)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet{position:absolute;display:block;width:16px;height:16px;border-radius:50%;transform:translateX(15px);cursor:grab;right:0;top:0;bottom:0;margin:auto}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet .frm-slider-value-label{position:absolute;display:block;width:48px;height:36px;background:#101828;color:#fff;font-weight:400;font-size:var(--text-sm);line-height:36px;border-radius:var(--small-radius);transform:translate(-18px, -42px) scale3d(0.7, 1, 1);opacity:0;z-index:-2;pointer-events:none;text-align:center;user-select:none}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging .frm-slider-value-label{z-index:12;transform:translate(-18px, -42px) scale3d(1, 1, 1);opacity:1;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::before{content:"";display:block;position:absolute;width:18px;height:18px;border-radius:50%;left:0;top:0;transform:translate(-5px, -5px) scale3d(0.7, 0.7, 1);border:4px solid #4199fd;opacity:0;transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet.frm-dragging::before{opacity:.5;transform:translate(-5px, -5px) scale3d(1, 1, 1);transition:.3s opacity,.35s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-component .frm-slider-container .frm-slider-active-track .frm-slider-bullet::after{content:"";position:absolute;display:block;width:180%;height:200%;border-radius:50%;left:0;top:0;transform:translate(-24%, -24%)}.frm-style-component .frm-slider-value{width:86px;height:36px;display:flex;justify-content:center;box-sizing:border-box;background:#fff;border-radius:var(--small-radius);border:1px solid var(--grey-300)}.frm-style-component .frm-slider-value>*{border:none}.frm-style-component .frm-slider-value input{width:40px;height:100%;padding:0;font-size:var(--text-sm);color:#101828;padding-left:12px;box-sizing:border-box}.frm-style-component .frm-slider-value select{text-align:right;padding:0;font-size:var(--text-sm);color:#667085;width:44px;background:url("../../images/style/small-arrow.svg") no-repeat;background-position:center right 12px;padding-right:24px !important}.frm-style-component .frm-slider{display:block;width:calc(100% - 5px);height:4px;background:#eaecf0;border-radius:200px;cursor:pointer}.frm-slider-component .frm-independent-slider-field{margin-top:10px}.frm-slider-component.frm-disabled .frm-slider-container{pointer-events:none;opacity:.5}.frm-slider-component.frm-disabled .frm-slider-value input[type=text]{width:28px}.frm-slider-component.frm-disabled .frm-slider-value select{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value input[type=text]{width:56px}.frm-slider-component.frm-disabled.frm-empty .frm-slider-value select{width:28px}.frm-style-component .frm-slider-component.frm-has-multiple-values{margin-bottom:10px}.frm-tabs-wrapper{position:relative;overflow:hidden}.frm-tabs-wrapper .frm-tabs-navigator{margin:0;padding:0;display:flex;gap:var(--gap-xs);justify-content:space-between;align-items:center;background:#f2f4f7;border-radius:var(--small-radius);box-sizing:border-box;height:44px;position:relative;z-index:2}.frm-tabs-wrapper .frm-tabs-navigator .frm-tab-item{flex:1;text-align:center;cursor:pointer}.frm-tabs-wrapper .frm-tabs-navigator .frm-active-background{display:block;height:100%;background:#fff;position:absolute;top:0;left:0;z-index:1}.frm-style-tabs-wrapper{position:relative}.frm-style-tabs-wrapper .frm-tabs-navs{padding:0;min-height:44px}.frm-style-tabs-wrapper .frm-tabs-navs ul{margin:0;height:var(--h-md);position:relative;justify-content:space-between}.frm-style-tabs-wrapper .frm-tabs-navs ul li,.frm-style-tabs-wrapper .frm-tabs-navs ul li a{color:var(--grey-500);font-weight:500;font-size:var(--text-sm);line-height:28px}.frm-style-tabs-wrapper .frm-tabs-navs ul li{flex:1;height:28px;text-align:center;margin-top:var(--gap-xs);margin-bottom:0;cursor:pointer}.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active,.frm-style-tabs-wrapper .frm-tabs-navs ul li.frm-active a{color:var(--grey-900)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child{margin-left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child{margin-right:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter{position:absolute;top:0;left:0;width:100%;background:#f2f4f7;height:44px;margin:0;border-radius:var(--small-radius)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline{height:28px;background:#fff;position:absolute;left:0;bottom:8px;width:45px;transition:.4s transform cubic-bezier(0.25, 0.46, 0.45, 0.94);border-radius:var(--small-radius);box-shadow:var(--button-shadow)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-first{left:var(--gap-xs)}.frm-style-tabs-wrapper .frm-tabs-delimiter .frm-tabs-active-underline.frm-last{left:calc(-1*var(--gap-xs))}.frm-tabs-container{position:relative;overflow:hidden;margin-top:var(--gap-md);height:100%}.frm-style-tabs-wrapper .frm-tabs-container .frm-tabs-slide-track{transition:.32s transform cubic-bezier(0.25, 0.46, 0.45, 0.94)}.frm-style-tabs-wrapper .frm-tabs-slide-track>div{flex:0 0 100%;opacity:0;transition:.25s opacity linear;position:relative;height:auto;max-height:unset;overflow:hidden;box-sizing:border-box}.frm-style-tabs-wrapper .frm-tabs-slide-track>div>div{overflow:auto;position:relative;width:100%;padding:0;box-sizing:border-box}.frm-tabs-slide-track>div>div:first-child{height:100%}.frm-tabs-slide-track>div.frm-active{opacity:1;transition:.35s opacity linear}.frm-style-component .frm_toggle_slider{background:#f2f4f7}.frm-style-component label.frm-copy-text{line-height:32px;cursor:pointer;white-space:nowrap}.frm-style-component .wp-picker-holder{right:0}.formidable_page_formidable-styles .accordion-section-content .frm-style-item-heading{font-weight:500;font-size:var(--text-md);color:var(--grey-900)}.frm-unit-input{position:relative;display:flex;align-items:center}.frm-unit-input input[type=number]::-webkit-outer-spin-button,.frm-unit-input input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.frm-unit-input .frm-input-group-suffix{position:absolute;top:1px;right:1px;display:flex;align-items:center;height:calc(100% - 2px);padding-right:var(--gap-xs)}.frm-unit-input .frm-input-group-suffix select{width:fit-content;height:100%;min-height:unset;font-size:var(--text-sm);text-align:right;color:var(--grey-500) !important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%23667085' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 0 top 50%;padding-left:var(--gap-2xs);padding-right:21px !important;border:rgba(0,0,0,0)}.frm-unit-input .frm-input-group-suffix select:focus-visible{outline:1px solid var(--primary-500);outline-offset:-2px} diff --git a/css/frm_admin.css b/css/frm_admin.css index 345759f788..e1a6bbb69a 100644 --- a/css/frm_admin.css +++ b/css/frm_admin.css @@ -1,3 +1,3 @@ -@font-face{font-family:"s11-fp";src:url("../fonts/s11-fp.woff?v=7") format("woff");font-weight:400;font-style:normal}.frm-submenu-highlight{background:#1da867}.frm-submenu-highlight a span{color:#fff;font-weight:600}.frmfont,.frm_icon_font{text-decoration:none;text-shadow:none;font-weight:400;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:auto;line-height:1.5;transition:color .1s ease-in-out,opacity .1s ease-in-out;font-size:18px}i.frmfont,i.frm_icon_font{font-style:normal;font-variant:normal;speak:none}.frmfont::before,select.frmfont,.frm_icon_font::before,select.frm_icon_font{font-family:"s11-fp" !important;text-align:center}.frmfont,a.frmfont,.frmfont:hover,a.frmfont:hover .frm_icon_font,a.frm_icon_font,.frm_icon_font:hover,a.frm_icon_font:hover{text-decoration:none !important;box-shadow:none}.frmfont:focus,.frm_icon_font:focus{box-shadow:none}.frmfont:active,.frm_icon_font:active{outline:none}.frm_trigger .frm_icon_font{padding:0 5px}.frm_logo_icon::before{content:"\e601"}.frm_required_icon::before{content:"\e612"}.frm_delete_icon::before{content:"\e610" !important}.frm_move_icon::before{content:"\e61a"}.frm_drag_icon::before{content:"\e93b"}.frm_clear_icon::before{content:"\e60a"}.frm_noclear_icon::before{content:"\e60b"}.frm_duplicate_icon::before{content:"\e61b"}.frm_copy_icon::before{content:"\f0c5"}.frm_clone_icon::before{content:"\f24d"}.frm_tooltip_icon::before{content:"\e611"}.frm_tooltip_solid_icon::before{content:"\e907"}.frm_forbid_icon::before{content:"\e636"}.frm_checkmark_icon::before{content:"\e90a"}.frm_check_icon::before{content:"\e605"}.frm_check1_icon::before{content:"\e606"}.frm_plus_icon::before{content:"\e62f"}.frm_plus1_icon::before{content:"\e602"}.frm_plus2_icon::before{content:"\e603"}.frm_plus3_icon::before{content:"\e632"}.frm_plus4_icon::before{content:"\e60f"}.frm_minus_icon::before{content:"\e62e"}.frm_minus1_icon::before{content:"\e600"}.frm_minus2_icon::before{content:"\e604"}.frm_minus3_icon::before{content:"\e633"}.frm_minus4_icon::before{content:"\e613"}.frm_cancel_icon::before{content:"\e607"}.frm_cancel1_icon::before{content:"\e608"}.frm_close_icon::before{content:"\e928"}.frm_report_problem_solid_icon::before{content:"\e914"}.frm_report_problem_icon::before{content:"\e915"}.frm_arrowup_icon::before{content:"\e60d"}.frm_arrowup1_icon::before{content:"\e60e"}.frm_arrowup2_icon::before{content:"\e630"}.frm_arrowup3_icon::before{content:"\e62b"}.frm_arrowup4_icon::before{content:"\e62c"}.frm_arrowup5_icon::before{content:"\e635"}.frm_arrowup5_solid_icon::before{content:"\e9d"}.frm_arrowup7_icon::before{content:"\e908"}.frm_arrowup6_icon::before{content:"\e62d"}.frm_arrowdown_icon::before{content:"\e609"}.frm_arrowdown1_icon::before{content:"\e60c"}.frm_arrowdown2_icon::before{content:"\e631"}.frm_arrowdown3_icon::before{content:"\e628"}.frm_arrowdown4_icon::before{content:"\e629"}.frm_arrowdown5_icon::before{content:"\e634"}.frm_arrowdown5_solid_icon::before{content:"\e905"}.frm_arrowdown7_icon::before{content:"\e90b"}.frm_arrowdown6_icon::before{content:"\e62a"}.frm_arrow_left_icon::before{content:"\e912"}.frm_arrow_right_icon::before{content:"\e913"}.frm_filter_icon::before{content:"\e90c"}.frm_download_icon::before{content:"\e615"}.frm_upload2_icon::before{content:"\f093"}.frm_upload_icon::before{content:"\e616"}.frm_download2_icon::before{content:"\f019"}.frm_hard_drive_icon::before{content:"\e916"}.frm_pencil_solid_icon::before{content:"\e901"}.frm_pencil_icon::before{content:"\e61d"}.frm_signature_icon::before{content:"\e919"}.frm_user_icon::before{content:"\e7ff"}.frm_register_icon::before{content:"\e637"}.frm_account_circle_solid_icon::before{content:"\e853"}.frm_account_circle_icon::before{content:"\e921"}.frm_address_card_icon::before{content:"\e996"}.frm_paragraph_icon::before{content:"\f1dd"}.frm_checkbox_unchecked_icon::before{content:"\e91e"}.frm_checkbox_icon::before{content:"\e922"}.frm_checkbox_solid_icon::before{content:"\e91f"}.frm_dropdown_icon::before{content:"\e909"}.frm_caret_square_down_icon::before{content:"\f150"}.frm_check_square_icon::before{content:"\f14a"}.frm_radio_unchecked_icon::before{content:"\e971"}.frm_radio_checked_icon::before{content:"\ea54"}.frm_scrubber_icon::before{content:"\f2f8"}.frm_location_solid_icon::before{content:"\e955"}.frm_location_icon::before{content:"\e947"}.frm_toggle_on_icon::before{content:"\f205"}.frm_toggle_off_icon::before{content:"\f204"}.frm_shield_check_icon::before{content:"\f2f7"}.frm_shield_check_solid_icon::before{content:"\e97d"}.frm_clock_icon::before{content:"\e929"}.frm_clock_solid_icon::before{content:"\e985"}.frm_link_icon::before{content:"\f0c1"}.frm_email_icon::before{content:"\e626"}.frm_email_solid_icon::before{content:"\f0e0"}.frm_mail_bulk_icon::before{content:"\e95c"}.frm_phone_icon::before{content:"\e942"}.frm_calendar_icon::before{content:"\f073"}.frm_code_icon::before{content:"\e90d"}.frm_tag_icon::before{content:"\e98b"}.frm_tag_solid_icon::before{content:"\e989"}.frm_price_tags_icon::before{content:"\e936"}.frm_search_icon::before{content:"\e978"}.frm_sitemap_icon::before{content:"\f0e8"}.frm_file_icon::before{content:"\f15b"}.frm_file_text_solid_icon::before{content:"\f15c"}.frm_file_text_icon::before{content:"\e923"}.frm-option-icon::before,.frm_option_icon::before{content:"\e904"}.frm_option_solid_icon::before{content:"\e906"}.frm_more_horiz_icon::before{content:"\e5d3"}.frm_more_vert_icon::before{content:"\e5d4"}.frm_more_horiz_solid_icon{font-size:28px !important;font-weight:700;line-height:18px}.frm_more_horiz_solid_icon::before{content:"···"}.frm_more_vert_solid_icon::before{content:"\f142"}.frm_calculator_icon::before{content:"\f1ec"}.frm_keyboard_icon::before{content:"\e924"}.frm_eye_icon::before{content:"\f06e"}.frm_eye_solid_icon::before{content:"\e945"}.frm_eye_slash_icon::before{content:"\f070"}.frm_eye_slash_solid_icon::before{content:"\e949"}.frm_page_break_icon::before{content:"\e8e9"}.frm_view_day_icon::before{content:"\e8ed"}.frm_attach_file_icon::before{content:"\e226"}.frm_printer_icon::before{content:"\e926"}.frm_header_icon::before{content:"\f1dc"}.frm_h1_icon::before{content:"\e94c"}.frm_repeat_icon::before{content:"\f363"}.frm_repeater_icon::before{content:"\e974"}.frm_hashtag_icon::before{content:"\e292"}.frm_save_icon::before{content:"\e927"}.frm_sliders_icon::before{content:"\f1de"}.frm_code_commit_icon::before{content:"\f386"}.frm_star_icon::before{content:"\e9d7"}.frm_star_full_icon::before{content:"\e9d9"}.frm_star_half_icon::before{content:"\e9d8"}.frm_linear_scale_icon::before{content:"\e260"}.frm_pie_chart_icon::before{content:"\e99a"}.frm_stats_bars_icon::before{content:"\e99c"}.frm_sms_icon::before{content:"\e61c"}.frm_highrise_icon::before{content:"\e617"}.frm_mailchimp_icon::before{content:"\e622"}.frm_feed_icon::before{content:"\e624"}.frm_align_right_icon::before{content:"\e90f"}.frm_align_left_icon::before{content:"\e910"}.frm_button_icon::before{content:"\e911"}.frm_browser_icon::before{content:"\e925"}.frm_cloud_upload_solid_icon::before{content:"\e92c"}.frm_shuffle_icon::before{content:"\e917"}.frm_swap_icon::before{content:"\e918"}.frm_pallet_icon::before{content:"\e96d"}.frm_fingerprint_icon::before{content:"\e94a"}.frm_ghost_icon::before{content:"\e94b"}.frm_heart_solid_icon::before{content:"\e94d"}.frm_heart_icon::before{content:"\e94e"}.frm_history_icon::before{content:"\e94f"}.frm_import_icon::before{content:"\e91a"}.frm_export_icon::before{content:"\e91b"}.frm_label_solid_icon::before{content:"\e952"}.frm_label_icon::before{content:"\e953"}.frm_lock_open_icon::before{content:"\e957"}.frm_lock_icon::before{content:"\e959"}.frm_dollar_sign_icon::before{content:"\e91c"}.frm_percent_icon::before{content:"\e939"}.frm_external_link_icon::before{content:"\e966"}.frm_pageview_solid_icon::before{content:"\e96a"}.frm_pageview_icon::before{content:"\e96b"}.frm_settings_icon::before{content:"\e97a"}.frm_stamp_icon::before{content:"\e980"}.frm_support_icon::before{content:"\f1cd"}.frm_text_icon::before{content:"\e98d"}.frm_text2_icon::before{content:"\f031"}.frm_white_label_icon::before{content:"\e91d" !important}.frm_authorize_icon::before{content:"\e903"}.frm_icon_font.frm_activecampaign_icon{background-image:none}.frm_activecampaign_icon::before{content:"\e930"}.frm_aweber_icon::before{content:"\e627"}.frm_campaignmonitor_icon::before{content:"\e946"}.frm_constant_contact_icon::before{content:"\e931"}.frm_getresponse_icon::before{content:"\e932"}.frm_googlesheets_icon::before{content:"\e944"}.frm_building_icon::before{content:"\e93f"}.frm_hubspot_icon::before{content:"\e933"}.frm_icontact_icon::before{content:"\e940"}.frm_icon_font.frm_mailpoet_icon::before{content:"\e934"}.frm_paypal_icon::before{content:"\e61f"}.frm_sendinblue_icon::before{content:"\e943"}.frm_sendy_icon::before{content:"\e941"}.frm_salesforce_icon::before{content:"\e935"}.frm_salesforcealt_icon::before{content:"\e937"}.frm_stripe_icon::before{content:"\e902"}.frm_stripealt_icon::before{content:"\e93d"}.frm_twilio_icon::before{content:"\e620"}.frm_woocommerce_icon::before{content:"\e90e"}.frm_wordpress_icon::before{content:"\f19a"}.frm_credit_card_icon::before{content:"\e938"}.frm_credit-card-alt_icon::before,.frm_credit_card_alt_icon::before{content:"\f283"}.frm_cc_amex_icon::before{content:"\f1f3"}.frm_cc_discover_icon::before{content:"\f1f2"}.frm_cc_mastercard_icon::before{content:"\f1f1"}.frm_cc_visa_icon::before{content:"\f1f0"}.frm_cc_paypal_icon::before{content:"\f1f4"}.frm_cc_stripe_icon::before{content:"\f1f5"}:root,.frm-white-body,.frm_wrap{--grey-900: #101828;--grey-800: #1D2939;--grey-700: #344054;--grey-600: #475467;--grey-500: #667085;--grey-400: #98A2B3;--grey-300: #D0D5DD;--grey-200: #EAECF0;--grey-100: #F2F4F7;--grey-50: #F9FAFB;--grey-25: #FCFCFD;--dark-grey: var(--grey-700);--medium-grey: rgba(40, 47, 54, .65);--grey: var(--grey-500);--grey-border: var(--grey-300);--lightest-grey: rgb(250, 250, 250);--sidebar-color: var(--grey-50);--sidebar-hover: var(--grey-200);--primary-700: #2B66A9;--primary-500: #4199FD;--primary-300: #80BBFE;--primary-200: #C0DDFE;--primary-50: #ECF5FF;--primary-25: #F5FAFF;--primary-color: var(--primary-500);--primary-hover: var(--primary-700);--light-blue: var(--primary-25);--blue-border: rgb(188, 224, 253);--error-700: #B42318;--error-500: #F04438;--error-300: #FECDCA;--error-100: #FEE4E2;--error-25: #FFF5F4;--green: rgb(63, 172, 37);--orange: #F15A24;--warning-500: #F79009;--pink: rgb(226, 42, 110);--purple: rgb(141, 53, 245);--success-900: #054F31;--success-800: #065F46;--success-500: #12b76a;--success-100: #D1FAE5;--success-200: #A6F4C5;--success-50: #ECFDF3;--success-25: #f6fef9;--border-radius: 35px;--small-radius: 8px;--medium-radius: 16px;--small-sidebar: 275px;--medium-sidebar: 350px;--big-sidebar: 390px;--biggest-sidebar: 450px;--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--h-xs: 24px;--h-sm: 30px;--h-md: 36px;--leading: 1.5;--gap-2xs: 4px;--gap-xs: 8px;--gap-sm: 16px;--gap-md: 24px;--gap-lg: 32px;--gap-xl: 40px;--gap-2xl: 48px;--box-shadow-xs: 0 0.47074466943740845px 0.9414893388748169px 0 rgba(16, 24, 40, 0.05);--box-shadow-sm: 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-md: 0 1.88298px 3.76596px -0.941489px rgba(16, 24, 40, 0.1), 0 0.941489px 1.88298px -0.941489px rgba(16, 24, 40, 0.06);--box-shadow-lg: 0 6px 8px -2px rgba(16, 24, 40, 0.08), 0 1.88298px 4px -1px rgba(16, 24, 40, 0.03), 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-xl: 0 9.41489px 11.2979px -1.88298px rgba(16, 24, 40, 0.08), 0 3.76596px 3.76596px -1.88298px rgba(16, 24, 40, 0.03);--box-shadow-xxl: 0 11px 22px -5px rgba(16, 24, 40, 0.18);--button-shadow: 0 0.47px 0.94px 0 rgba(16, 24, 40, 0.06), 0 0.47px 1.47px 0 rgba(16, 24, 40, 0.1);--check-label-color: var(--grey-700)}@font-face{font-family:"Inter";src:url("../fonts/Inter-VariableFont_slnt,wght.ttf?v=1") format("truetype")}.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}@media not all and (min-resolution: 0.001dpcm){@supports(-webkit-appearance: none) and (stroke-color: transparent){.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{-webkit-font-smoothing:antialiased}}}.frm-sm-z-index{z-index:1}.frm-md-z-index{z-index:5}.frm-white-body,.frm-white-body p,.frm_wrap,.frm_wrap p,.frm-modal,.frm-white-body .postbox .inside{font-size:var(--text-sm);color:var(--grey-500);line-height:var(--leading)}.frm-white-body p,.frm_wrap p{margin:var(--gap-sm) 0}body:not(.frm-admin-page-styles):not(.frm-admin-page-style) .with_frm_style .frm_form_fields>fieldset{--fieldset-padding: 15px 0}a,.widget .widget-top,.stuffbox h3,.frm-collapsed{cursor:pointer;text-decoration:none}.post-type-frm_display .wrap>#posts-filter,.wrap.frm-with-margin,.frm_wrap>.wrap{margin:var(--gap-sm) var(--gap-md) var(--gap-md)}#frm_top_bar+.wrap{margin:var(--gap-xl)}.frm-full-screen #wpbody-content>.wrap{margin:0}.post-type-frm_display .wrap{margin:0}.toplevel_page_formidable #post-body-content{overflow-x:visible}.frm-full-screen{height:100%;overflow:hidden}.frm-full-screen.frm-admin-page-reports,.frm-full-screen.frm-admin-page-entries,.frm-full-screen.post-type-frm_display{overflow:auto}.frm-full-screen #wpadminbar,.frm-full-screen #adminmenumain,.frm-full-screen .wp-header-end{display:none}body.frm-white-body:not(.frm-full-screen) .mce-fullscreen{top:32px;left:160px}.frm-full-screen #wpbody-content,.frm-full-screen #wpbody,.frm-full-screen #wpcontent{padding:0;overflow:hidden;margin:0 !important}.frm-white-body #wpbody-content{position:relative;padding-bottom:0}.post-new-php.post-type-frm_display #screen-meta-links,.post-php.post-type-frm_display #screen-meta-links{display:none}.frm-white-body #screen-meta-links{position:fixed;bottom:0;right:20px}.frm-full-screen #screen-meta-links .screen-meta-toggle{right:55px}.frm-white-body #screen-meta-links .show-settings{border-radius:var(--small-radius) var(--small-radius) 0 0;border:1px solid var(--grey-300);border-bottom:none}.frm-white-body.frm-lite #screen-meta-links .screen-meta-toggle{right:125px}.frm-white-body #screen-meta{margin:0}.frm-white-body #screen-meta-links .show-settings::after{color:var(--grey)}.frm-white-body .columns-2{border-bottom:1px solid var(--grey-300)}.frm-full-screen .columns-2{border:none}body.post-type-frm_display.edit-php,body.frm-white-body{background:#fff}body.frm-white-body ul#adminmenu a.wp-has-current-submenu::after,body.frm-white-body ul#adminmenu>li.current>a.current::after{border-right-color:#fff}.frm-white-body #wpcontent{padding-left:0;padding-right:0}.frm-white-body .wrap #post-body{padding:0 20px}.frm-grey-body #wpbody{background:var(--grey-100)}.frm-grey-body #frm_top_bar{background:#fff}.post-type-frm_display .tablenav,.frm_wrap .tablenav{margin-bottom:10px}.frm-white-body .tablenav .actions select,.wp-admin .frm_wrap .tablenav select{margin-right:var(--gap-xs)}.tablenav .actions .button{margin-top:1px}.frm-white-body table.widefat{background:var(--lightest-grey);border-width:0;box-shadow:none;margin:20px 0}.frm-white-body table.widefat tfoot,.frm-white-body table.widefat thead{background:#fff}.frm-white-body table.widefat th{font-size:var(--text-md)}.frm-white-body table.widefat th a{color:var(--grey-700)}.frm-white-body table.widefat strong a{color:var(--primary-700)}.frm-scroll-box{clear:both;overflow:auto;max-height:405px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm_form_field.frm_scroll_box .frm_opt_container{height:100px;overflow:auto;border:1px solid var(--grey-300)}.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 6/span 6;align-content:center}.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 12/span 12 !important;align-content:center}.frm_form_field.frm-phone-type~[id*=frm-field-format-custom-]>label,.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]>label{opacity:0}.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]{grid-column:span 6/span 6}.frm-single-settings.frm-type-textarea>.frm_grid_container [id*=frm-field-format-custom-]+p{grid-column:span 12/span 12}.frm-single-settings .frm_grid_container{column-gap:var(--gap-sm)}.frm-content-center{align-content:center}.frm-self-end{align-self:end}.frm-short-list{overflow:auto;max-height:190px}.frm-white-body table.frm-border td{font-size:var(--text-sm)}.frm-white-body .striped>tbody>:nth-child(odd){background-color:#fff}.frm_wrap td.column-title strong{display:inline}td.column-title .frm_actions_dropdown{float:right}#frm_top_bar{display:flex;gap:var(--gap-sm);width:100%;height:72px;margin:0;box-sizing:border-box;text-align:center;padding:0 var(--gap-md)}#frm_top_bar>.frm-full-close:last-child,#frm_top_bar>#frm-publishing:last-child{margin-left:auto}#frm_top_bar{border-bottom:1px solid var(--grey-300);padding:0 var(--gap-md);overflow:visible}.frm-white-body h1,.frm-white-body h2,.frm-white-body h3,.frm-white-body h4{color:var(--grey-900);font-weight:400;line-height:var(--leading) !important}.frm-white-body .wrap h1,.frm-white-body h1{font-size:var(--text-xl)}.frm-white-body .wrap h2,.frm-white-body h2{font-size:var(--text-lg);font-weight:500}.frm-white-body .wrap h3,.frm-white-body h3{font-size:var(--text-md)}.frm-white-body .wrap h4,.frm-white-body h4{font-size:var(--text-sm);font-weight:500}#frm_error_modal .frm_lock_simple{padding:20px;border-radius:50%;background-color:var(--primary-25);display:inline-block}#frm_error_modal #frm_lock_simple{color:var(--primary-500)}#frm_error_modal .frm-modal-title{display:block}#frm_error_modal .frm-modal-title h2{font-weight:600;font-size:var(--text-xl);margin:0}#frm_error_modal .frm_modal_content{padding:var(--gap-md);color:var(--grey-900)}.frm-views-editor-body .frm_page_container #frm_top_bar h1{padding:0 !important;color:var(--grey-900);font-size:var(--text-xl) !important}.post-type-frm_display .frm_top_left{padding-bottom:0 !important}.frm-new-table-view-option.frm-selected-table-view-option{border-radius:var(--small-radius);background:var(--primary-25)}.frm-views-editor-body #frm_adv_info .tabs-panel{padding-left:4px;padding-right:4px}#frm_edit_box_content_modal .frm_modal_footer{padding-top:var(--gap-sm);border-top:1px solid var(--grey-300)}#frm_edit_box_content_modal .frm_modal_footer>div{display:flex;justify-content:space-between}#frm_edit_box_content_modal #frm_modal_box_select_area,#frm_edit_box_content_modal #frm_box_content_wysiwyg_wrapper,#frm_edit_box_content_modal .frm_modal_content{max-height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #frm_modal_box_select_area{height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #wp-content-editor-tools{padding-top:0}#frm_edit_box_content_modal.frm-modal .postbox .frm-modal-title+div:last-child{right:var(--gap-md)}.frm_code_list.frm-full-hover .frm-dropdown-view a{flex-direction:row-reverse}#frm_view_editor_left.frm-right-panel .accordion-section-title::before{content:"" !important;margin:0}.frm-gradient,.frm-upgrade-bar{background:linear-gradient(90deg, #388CF3, #1961D5, #8C7FD8) !important;color:#fff !important;border:0 !important}.frm-gradient.frm-button-primary:not([disabled]),.frm-gradient.frm-button-primary:not([disabled]):hover,.frm-gradient.frm-button-primary:not([disabled]):focus{background:linear-gradient(90deg, #1961D5, #816CFA) !important}.frm-upgrade-bar,.frm-gradient{position:relative}.frm-upgrade-bar::before,.frm-gradient::before{content:"";display:none;position:absolute;top:0;right:0;bottom:0;left:0;background-color:hsla(0,0%,100%,.1);z-index:0}.frm-upgrade-bar:hover::before,.frm-gradient:hover::before,.frm-gradient:focus::before{display:block}.frm-upgrade-bar-inner,.frm-gradient>*{position:relative;z-index:1}.frm-upgrade-bar{border-bottom:1px solid var(--sidebar-hover);padding:9px 0;font-size:12px;text-align:center}.frm-upgrade-bar a{color:currentColor !important;text-decoration:underline}.frm-upgrade-bar a:focus{outline:1px dotted var(--sidebar-hover)}.frm-upgrade-bar span{opacity:.9}a h1 .frmsvg{color:var(--grey-400);vertical-align:middle;min-width:var(--text-sm)}a .frmsvg{color:currentColor}.frm_wrap .view-switch a.current::before,.frm-white-body a,.frm_wrap a,.frm_wrap a i{color:var(--primary-color)}.frm_wrap a:active,.frm_wrap a:hover{color:var(--primary-700);box-shadow:none}.post-type-frm_display a:focus,.frm_wrap a:focus{box-shadow:none}.frm_top_left{text-align:left;float:left;white-space:nowrap;max-width:250px;overflow:hidden;text-overflow:ellipsis;align-self:center}.post-type-frm_display .frm_top_left,.frm_top_left.frm_top_wide{max-width:100%}.post-type-frm_display .frm_nav_bar .frm-header-logo,.frm_nav_bar .frm-header-logo{margin:18px 0 10px}#frm_top_bar .frm_form_nav{flex:1}ul.frm_form_nav{margin:0 auto;padding-top:18px;display:block;min-width:240px}.nav-tab-wrapper.frm_form_nav{padding:0 25px}ul.frm_form_nav>li{margin:0 min(3.5%,32px) 0 0;display:inline-block}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle,.post-type-frm_display .frm_form_nav .nav-tab-active,.frm_form_nav>li>a{font-size:1.3em;text-decoration:none;display:block;padding:6px 2px 4px;font-weight:500;color:var(--grey-700);border-bottom:2px solid rgba(0,0,0,0)}.post-type-frm_display.js .postbox .handlediv .toggle-indicator::before{margin-top:10px}.frm-nav-tabs a:focus,.frm-nav-tabs a:active,.frm_form_nav a:active,.frm_form_nav a:focus{outline:none;box-shadow:none}.frm_form_nav>li>a{font-size:var(--text-md);font-weight:400;color:var(--grey-500)}.frm_form_nav>li>a:hover{border-color:var(--primary-700)}.frm_form_nav .frm-dropdown-menu a:hover{background-color:#eaf2fa}.post-type-frm_display .frm_form_nav .nav-tab-active,.post-type-frm_display .frm_form_nav .nav-tab-active:hover,.frm_form_nav>li a.current_page{color:var(--primary-500);border-color:var(--primary-500);background:rgba(0,0,0,0);opacity:1;font-weight:600}.frm-full-close{display:none;padding-left:var(--gap-md);border:0 solid var(--grey-300);border-left-width:1px;height:100%;box-sizing:border-box}.frm-full-screen .frm-full-close{display:flex;align-items:center}.frm-full-close a{display:block}.frm-full-close .frmsvg{font-size:20px;width:20px;height:20px;color:var(--grey-500)}#frm_top_bar h1{font-weight:400;padding:0;margin:0;color:var(--grey-900);display:inline-flex;gap:var(--gap-sm);align-items:center;text-align:left;min-width:200px}#frm_top_bar h1 span{max-width:175px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:inline-block;vertical-align:bottom}#frm_top_bar ul.frm_form_nav,#frm_top_bar .frm-header-logo,#frm_top_bar #frm_bs_dropdown{align-self:center;margin-top:0;margin-bottom:0;padding-top:0}#frm_top_bar .frm-header-logo{display:flex}#frm_top_bar h2{float:left;margin:0 0 0 var(--gap-sm);padding:2px 0 2px var(--gap-sm);font-weight:400;border-left:2px solid var(--grey)}.frm_wrap>#frm_top_bar #frm-publishing{margin-top:0}#frm-publishing{min-width:225px;align-self:center;align-items:center;display:flex;flex-direction:row-reverse;gap:0 var(--gap-sm);flex-wrap:wrap}.frm_wrap .postbox{border-color:var(--grey-300);border-radius:6px;box-shadow:none}.frm_wrap .postbox h3.hndle{cursor:default;padding:10px 20px;margin:0;line-height:1.4em;border-color:var(--grey-300)}.frm-pre-hndle{font-size:15px;padding:5px;margin:9px 15px}.frm-empty-row{display:none}.frm-child-row{box-shadow:5px 0 0 0 inset var(--sidebar-hover)}.frm_animate_bg{transition:background 200ms linear,color 200ms linear}.wrap>.subsubsub{clear:both;margin:0}.frm_wrap .subsubsub a{line-height:var(--leading);font-size:var(--text-sm)}.frm-admin-page-styles .frm_page_container,.frm_wrap .frm_page_container{height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;padding-top:0;position:fixed;top:32px;bottom:0;left:0;right:0}.frm-admin-page-translate .frm_wrap .frm_page_container,.frm-admin-page-update_translations .frm_wrap .frm_page_container{position:static}.auto-fold.frm-admin-page-styles .frm_page_container,.auto-fold .frm_wrap .frm_page_container,.frm-unfold.frm-admin-page-styles .frm_page_container,.frm-unfold .frm_wrap .frm_page_container{left:160px}.folded.frm-admin-page-styles .frm_page_container,.folded .frm_wrap .frm_page_container{left:38px}.frm-full-screen.frm-admin-page-styles .frm_page_container,.frm-full-screen .frm_wrap .frm_page_container{height:100vh;top:0;left:0}.frm-full-screen.frm-admin-page-entries .frm_page_container,.frm-new-entry .frm_page_container,.frm-admin-page-reports .frm_page_container,.frm_list_entry_page .frm_page_container{height:auto;display:block}.frm-new-entry .columns-2{border:none}.frm-white-body #frm_top_bar,.frm-white-body .columns-2{flex:0 0 auto}.columns-2 .frm-right-panel+div{padding-bottom:var(--gap-md);border-left:1px solid var(--grey-300)}.columns-2 .frm-right-panel+div,.frm_wrap #post-body-content{padding-bottom:0;padding-top:var(--gap-sm);margin-bottom:0;background:#fff;width:auto;float:none;flex:2}.frm-white-body .columns-2{flex:1;display:flex;overflow:hidden}.frm-white-body .columns-2>div{overflow-y:auto;box-sizing:border-box}.frm_wrap .columns-2 .frm-right-panel,.frm-right-panel{flex:0 0 var(--biggest-sidebar);float:none;width:var(--biggest-sidebar);min-width:var(--biggest-sidebar);background-color:var(--sidebar-color);margin:0;box-shadow:none;border:none;padding-bottom:25px}.frm-right-panel .frm_field_list,.frm_wrap .frm-right-panel #frm_adv_info,.frm_wrap #postbox-container-1 #frm_adv_info{box-shadow:none;border:none;margin-bottom:26px}#new_fields,.frm-has-modal,p.frm_has_shortcodes{position:relative}.frm-inline-modal.postbox{background:#fff;border-color:var(--grey-100);border-radius:var(--small-radius);box-shadow:var(--box-shadow-lg)}.frm_has_shortcodes .frmsvg:not(.frm_help .frmsvg),.frm_has_shortcodes i:not([class*=mce-]){position:absolute;color:var(--primary-500);border-radius:50%;border:1px solid rgba(0,0,0,0);z-index:100;text-align:center}.frm_has_shortcodes .frmsvg.frm-show-box{border-radius:6px !important}.frm_has_shortcodes input,.frm_has_shortcodes textarea{padding-left:18px;box-sizing:border-box}#form_settings_page #frm_adv_info,#frm_builder_page #frm_adv_info{display:none;top:0;width:310px;max-height:315px;min-height:200px;overflow-y:scroll;z-index:100}#form_global_settings .columns-2>div{overflow:auto;height:calc(100vh - 32px)}#form_global_settings .columns-2 .frm-right-panel,#form_settings_page .columns-2 .frm-right-panel,#wpbody-content .frm-page-skeleton .frm-right-panel{flex:0 0 var(--small-sidebar);width:var(--small-sidebar);min-width:var(--small-sidebar)}#form_global_settings .frm_grid_container{gap:0 var(--gap-md)}.frm-inner-content{padding:var(--gap-md)}.post-type-frm_display #poststuff{padding:0 0 10px 40px}#postbox-container-2 .postbox .inside{padding:15px 25px}#postbox-container-2 #frm_advanced .inside h3{margin:15px -25px;font-weight:600}#form_settings_page .frm-inner-content{padding-top:0;padding-bottom:150px;position:relative}.frm_wrap #submitdiv{margin-bottom:0;border-width:0 0 1px;width:100%;min-width:unset}.frm_wrap #frm_adv_info .handlediv,.frm_wrap #frm_adv_info .hndle{display:none}.frm_wrap .menu-settings{border:none;margin-top:0}.nodrag a{cursor:pointer}.frm_wrap #frm_adv_info .inside{margin:0}#frm_adv_info>.inside{padding:0}#frm_adv_info ul.subsubsub{padding-bottom:var(--gap-xs) !important}#frm_adv_info ul.subsubsub a{font-weight:500}#frm_adv_info ul.subsubsub .frm-vertical-separator{display:inline-block;width:1px;height:8px;background-color:var(--grey-300)}#frm_adv_info #frm-insert-condition{background-color:var(--primary-50)}#frm_adv_info #frm-insert-condition:hover{background-color:var(--primary-25)}#frm_builder_page #frm_adv_info{width:322px;max-height:356px;border-radius:var(--small-radius);overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory{height:356px;overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div{max-height:286px;padding:0}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*{padding-bottom:var(--gap-sm);max-height:unset}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*:last-child{padding-bottom:var(--gap-xs)}#frm_builder_page #frm_adv_info #frm-nav-tabs{display:flex;gap:var(--gap-xs);background-color:var(--grey-100);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:var(--gap-xs) var(--gap-2xs) var(--gap-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li{flex:1;text-align:center}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a{font-weight:500;line-height:1;color:var(--grey-500);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:0}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a:hover{background-color:#eaecf0;color:var(--grey-500) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li.frm-tabs a{background-color:#fff;color:var(--grey-900) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info .frm-search,#frm_builder_page #frm_adv_info .frm-with-search{padding-top:0;margin:0}.frm-right-panel .frm-inline-modal.postbox .inside{margin:0;padding:0 14px 14px}.frm-right-panel .frm-inline-modal.postbox .inside .frm-with-line,.frm-right-panel .frm-inline-modal.postbox .inside .accordion-section-content h4{margin-left:-14px;margin-right:-14px}.frm-right-panel .frm-inline-modal .inside p:not(.howto),.frm-right-panel .frm-inline-modal .inside a{font-size:15px}.frm-inline-modal .inside a.frm_icon_font{font-size:18px}.frm-nav-tabs{margin:10px 0 20px;padding:0 var(--gap-sm);display:block;border-bottom:1px solid var(--grey-300)}#frm-nav-tabs{position:-webkit-sticky;position:sticky;top:0;background-color:var(--sidebar-color);z-index:98;margin-top:0;padding-top:5px}.frm_form_settings #frm_adv_info #frm-nav-tabs{background-color:#fff;margin:0 -4px}.frm_form_settings span.frm-with-right-icon,#frm_builder_page .frm_has_shortcodes span.frm-with-right-icon:not(.frm_hidden){display:block}.frm-inline-modal .frm-nav-tabs,#frm_adv_info .frm-nav-tabs{margin:5px 0 0}#frm_adv_info .frm-nav-tabs.frm-compact-nav{padding-right:0;padding-left:20px}.frm-nav-tabs li{display:inline-block;margin:0}.frm-nav-tabs a{color:var(--grey-700);padding:10px 1px;margin:0 9px;border-bottom:2px solid rgba(0,0,0,0)}.frm_form_settings #frm_adv_info .frm-nav-tabs a{padding:5px 1px;color:var(--grey-500)}.frm-nav-tabs.frm-compact-nav a{margin:0 5px}.frm-nav-tabs a{display:block;opacity:.9}#frm_adv_info .frm-nav-tabs a{color:var(--grey-700)}.frm-nav-tabs a:hover,.frm-nav-tabs .frm-tabs a{color:var(--primary-500) !important;border-color:var(--primary-500)}.frm_form_settings #frm_adv_info .frm-nav-tabs .frm-tabs a{font-weight:500}#frm-bulk-modal .howto,#frm-bulk-modal h3{font-size:var(--text-sm);font-weight:400;margin:5px 0 10px;color:var(--grey)}#frm-bulk-modal h3{margin-left:20px}.frm-right-panel a.frm_add_logic_link,.frm-right-panel h3{color:var(--grey-700);font-size:var(--text-lg);font-weight:400;margin:0}.frm-right-panel h3 i{color:var(--grey-700);float:right;width:16px;cursor:pointer}.frm-settings-panel{padding:var(--gap-sm);padding-right:var(--gap-xs)}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-delimiter{top:var(--gap-xs);left:var(--gap-xs);width:calc(100% - var(--gap-sm))}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-navs{padding:var(--gap-xs) var(--gap-xs) 0}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div{max-height:0;visibility:hidden}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div.frm-active{max-height:unset;visibility:visible}.frm-settings-panel .frm-embed-field-placeholder{height:unset}.frm-settings-panel .frm-embed-field-placeholder img{height:100px}.frm-settings-panel .frm-embed-field-placeholder .frm-embed-message{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-sm);max-width:unset;color:var(--grey-800);padding:var(--gap-lg);border:0;box-shadow:var(--box-shadow-sm);margin:1px}.frm-single-settings .frm-default-value-wrapper>p{margin-bottom:0}.frm-single-settings .frm-default-value-wrapper+p:empty{display:none}.frm-single-settings [class*=frm-lookup-box-] .frm_grid_container p{margin-top:0 !important}.frm-single-settings .frm_single_option[id^=frm_watch_lookup_]{margin-bottom:var(--gap-xs) !important}.frm-single-settings>h3:first-of-type{position:relative;background-color:rgba(0,0,0,0) !important;border-top:none;padding-top:0 !important;margin-top:0 !important}.frm-single-settings>h3:first-of-type::after{content:"";position:absolute;left:var(--gap-sm);right:var(--gap-sm);bottom:0;height:1px;background-color:var(--sidebar-hover)}.frm-flex-justify,.frm-right-panel .frm-single-settings h3{display:flex;justify-content:space-between;align-items:center}#post-body-content+.frm-right-panel{flex:0 0 var(--medium-sidebar);width:var(--medium-sidebar);min-width:var(--medium-sidebar);border-left:1px solid var(--sidebar-hover)}.frm-new-entry #post-body-content+.frm-right-panel,.frm-new-entry .frm-right-panel{background:none;border:none}#post-body-content+.frm-right-panel h3{padding:20px 20px 0;font-size:17px}#post-body-content+.frm-right-panel .frm_with_icons:first-of-type h3{border:none}#frm-insert-fields h3{color:var(--grey);font-size:15px;font-weight:400;border-top:none;border-bottom:1px solid var(--sidebar-hover);margin:0;padding:10px 10px 10px 25px}.frm_wrap #frm_adv_info ul.category-tabs{margin:0;padding:10px 0 9px;font-size:15px;background:rgba(0,0,0,0)}.frm_wrap #frm_adv_info ul.category-tabs li{padding:10px;background-color:rgba(0,0,0,0) !important}.frm_wrap #frm_adv_info ul.category-tabs li:first-child{border:none}.frm_wrap #frm_adv_info .categorydiv div.tabs-panel{border:none;background:rgba(0,0,0,0)}.frm_wrap #frm-categorydiv{border-right:none}#frm_adv_info #frm-conditionals{padding-top:var(--gap-sm)}#postbox-container-1 #taxonomy-linkcategory #frm-html-tags{display:none;max-height:none}#postbox-container-1 .frm_field_list #frm-insert-fields .frmbutton.dropdown{position:relative}.frm-white-body #footer-upgrade{display:none}.frm-admin-footer-links,.frm-admin-footer-links-nav,.frm-admin-footer-links-socials{display:flex;justify-content:center}.frm-admin-footer-links{gap:var(--gap-2xs);flex-direction:column;text-align:center;padding:var(--gap-xl) 0 var(--gap-lg);font-size:var(--text-xs);color:var(--grey-400)}body.frm-hidden-overflow{height:100%;overflow:hidden}.frm-admin-footer-links-nav{gap:var(--gap-2xs);margin-bottom:var(--gap-xs)}.frm-admin-footer-links-socials{gap:var(--gap-xs)}.frm-admin-footer-links-socials a{color:var(--grey-400)}.frm_list_entry_page h2{float:left}.frm_list_entry_page h2+.error{clear:both}.frm_sidebar select{width:100%;margin-left:0;margin-right:0}.frm_sidebar #search-submit{float:right}.frm_single_entry_page #submitdiv{margin:0}.frm_single_entry_page .hndle a{font-size:13px}.frm-right-panel #publishing-action{float:none}.frm-right-panel #major-publishing-actions{border-top:none;height:32px;background:rgba(0,0,0,0)}#major-publishing-actions .frm_submit_form{float:right;margin-left:5px}.frm_orange_button,.frm_reverse_button{font-size:12px;border:1px solid var(--orange);color:var(--orange);font-weight:600;padding:1px 4px;border-radius:4px;background:rgba(0,0,0,0)}.frm_reverse_button:hover,.frm_reverse_button:active,.frm_reverse_button:focus{color:#fff;background:var(--orange);border:1px solid var(--orange)}.frm_reverse_button{font-size:1em;transition:all .2s ease}.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.wp-core-ui .button.frm-button-primary,.frm-button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-search .button,.frm-white-body .search-box .button,.frm-white-body .tablenav .button,.frm_orange_button,.toplevel_page_formidable #frm_upgrade_modal .button-primary,.wp-core-ui.frm-white-body .button-primary,.wp-core-ui.frm-white-body .button-secondary,.frm-white-body .button-primary,.frm-white-body .button-secondary,#frm-form-button button,.frm-form-button button,.frm-preview-buttons button,.frm-button-red,.frm-button-tertiary{text-shadow:none;box-shadow:none;border-radius:30px;border:1px solid var(--primary-500);font-size:var(--text-sm);transition:all .2s ease;padding:7px 16px;height:auto;min-height:28px;outline:none;line-height:var(--leading);box-sizing:border-box;font-weight:500;margin-bottom:0;display:inline-block}.frm-button-primary.frm-sharp,.frm-button-secondary.frm-sharp{border-radius:12px !important}#wpcontent .frm-button-secondary.frm-button-gradient{position:relative;border-color:rgba(0,0,0,0) !important;background-clip:padding-box !important}#wpcontent .frm-button-secondary.frm-button-gradient::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;margin:-1px;border-radius:inherit;background:linear-gradient(90deg, #129EFD 0%, #A334FD 100%);transition:opacity 150ms ease-out}#wpcontent .frm-button-secondary:hover::before{opacity:.5}.no-js.wp-core-ui .frm-search .button.hide-if-no-js,.js.wp-core-ui .frm-search .button.hide-if-js{display:none}.frm-button-tertiary{border-color:rgba(0,0,0,0);color:var(--primary-500)}.frm-button-tertiary:focus{outline:none}.frm-button-tertiary.frm_loading_button::before{border-right-color:var(--grey);border-bottom-color:var(--grey)}.frm-button-red,.frm-button-red:focus{--primary-color: var(--error-500);--primary-500: var(--error-500);--primary-700: var(--error-700)}.frm-button-red:not(.frm-button-tertiary),.frm-button-red:not(.frm-button-tertiary):focus{color:#fff !important}.frm-white-body h2 .button,.post-type-frm_display h2 .frm-button-primary,.frm-white-body .tablenav .button,.frm-button-primary.frm-button-sm,.frm-button-secondary.frm-button-sm,.frm-button-tertiary.frm-button-sm,.frm-button-red.frm-button-sm{padding:4px 12px !important;font-size:var(--text-xs) !important}.frm_no_style_button{background:rgba(0,0,0,0)}.frm-with-icon{display:flex;gap:var(--gap-xs);align-items:center}.frm-with-icon svg{opacity:.65}.frm-with-icon.button svg{height:var(--text-sm);width:var(--text-sm)}.frm-with-icon.frm-button-sm svg{height:var(--text-xs);width:var(--text-xs)}.frm-white-body .button.add_media{padding-left:12px !important;padding-right:12px !important;font-size:var(--text-xs);border-radius:var(--border-radius)}.wp-core-ui.frm-white-body #post-query-submit.button,.wp-core-ui.frm-white-body .button.tablenav-pages-navspan,.wp-core-ui.frm-white-body .button.first-page,.wp-core-ui.frm-white-body .button.prev-page,.wp-core-ui.frm-white-body .button.next-page,.wp-core-ui.frm-white-body .button.last-page,.wp-core-ui.frm-white-body .button.action{background-color:rgba(0,0,0,0);border-color:var(--grey-300);color:var(--grey-700);border-radius:var(--border-radius)}.post-type-frm_display.wp-core-ui .button-primary,.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.frm_single_entry_page #frm-publishing .button-primary{background-color:var(--primary-500) !important;color:#fff !important}.frm-button-primary.frm_large,.frm-button-secondary.frm_large{height:auto !important;padding:12px 16px !important}.frm-button-secondary.frm-small,.frm-button-primary.frm-small{font-size:var(--text-xs) !important;height:auto !important;padding:var(--gap-2xs) 12px !important}.frm-button-primary i::before{color:#fff}.wp-core-ui .button-primary.frm-button-primary:not([disabled]):hover,.frm-button-primary:not([disabled]):hover{background:var(--primary-700) !important;border-color:var(--primary-700) !important}.wp-core-ui .button-primary.frm-button-primary:active{vertical-align:inherit}.frm-white-body #search-submit,#frm-form-button .frm_button_submit,.frm-form-button .frm_button_submit,.frm-white-body .frm-preview-buttons button,.frm-white-body .button:not(.frm-button-primary),.wp-core-ui.frm-white-body .button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-button-secondary,.frm-button-secondary{color:var(--grey-800);border-color:var(--grey-300);background-color:#fff}#wp-content-media-buttons button,#wp-content-media-buttons a.button{border-color:var(--grey-300)}.frm_orange_button{border-color:#da791d !important;background:var(--orange);color:#fff}.frm-white-body .button:not(.frm-button-primary):focus,.frm-white-body .button:not(.frm-button-primary):active,.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:focus,.wp-core-ui.frm-white-body .tablenav .button:hover,.frm_wrap .preview>.button:hover,.frm-white-body #search-submit:hover{border-color:var(--grey-300) !important;color:var(--grey-800);background:var(--grey-50) !important;box-shadow:none !important;outline:none !important}.frm-button-primary .frmsvg{color:#fff}.frm_wrap .preview i{font-size:inherit}.frm-white-body .frm-button-primary:focus,.frm-white-body .frm-button-primary:active,#frm-addons-page .button-primary:focus,#form_global_settings .button-primary:focus,#frm_upgrade_modal .button:focus{border-color:var(--primary-700) !important;background-color:var(--primary-700) !important;box-shadow:none !important;outline:none !important}.frm_wrap .preview>.button:focus,.frm_orange_button:hover,.frm_orange_button:focus,.toplevel_page_formidable #frm_upgrade_modal .button-primary:hover,.toplevel_page_formidable #frm_upgrade_modal .button-primary:focus,.toplevel_page_formidable .frm_wrap button.button-primary:hover,.toplevel_page_formidable .frm_wrap button.button-primary:focus{outline:none}.frm_orange_button:hover,.frm_orange_button:focus{border-color:var(--orange) !important;background:rgba(0,0,0,0);color:var(--orange);opacity:1}.major-publishing-actions.frm_create_form_header{padding:8px 0}.major-publishing-actions.frm_create_form_header .frm_create_form_header_inner{font-size:15px;background:rgba(0,0,0,0)}.frm-menu-boxes .frm_blank_form_text{padding-bottom:26px}input.frm_insert_in_template{font-size:10px;width:98%;font-weight:400}.frm-dismissible a.dismiss:focus{box-shadow:none}.frm-dismissible a.dismiss{top:10px;right:10px;position:absolute}.frm-dismissible a.dismiss svg{color:var(--grey-800)}.wp-admin .frm-review-notice{position:fixed !important;bottom:var(--gap-2xl);right:var(--gap-lg);width:380px;text-align:center;border-color:var(--grey-100);padding:var(--gap-lg);border-radius:var(--medium-radius);box-shadow:var(--box-shadow-lg) !important;z-index:999;box-sizing:border-box;--gap-sm: 16px;--gap-md: 24px;--gap-2xl: 48px}.wp-admin .frm-review-notice *{box-sizing:border-box}.frm-review-notice-icon{display:inline-flex;margin-bottom:var(--gap-sm)}.wp-admin .frm-review-notice-title{font-weight:600;margin-top:0;margin-bottom:var(--gap-xs)}.wp-admin .frm-review-notice-text{margin-top:0;margin-bottom:var(--gap-md)}.frm-review-notice-signature{text-align:left;margin:var(--gap-md) 0}.frm-review-notice-signature img{width:40px;height:40px;padding:3px;box-shadow:var(--box-shadow-md);border-radius:100%}#wpwrap .frm-dismiss-review-notice{top:16px;right:19px}.frm-review-notice #frmapi-feedback [class^=frm__]{display:none}.frm-review-notice #frmapi-feedback input,.frm-review-notice #frmapi-feedback textarea{border-color:var(--grey-300);border-radius:var(--small-radius)}.frm-review-notice #frmapi-feedback input{min-height:unset;max-height:36px}.frm-review-notice #frmapi-feedback textarea{max-height:80px;padding-top:var(--gap-xs)}.frm-review-notice #frmapi-feedback .frm_message{color:var(--success-900);background-color:var(--success-25);border:1px solid var(--success-200);padding:var(--gap-sm) var(--gap-md);margin:0}.frm-review-notice #frmapi-feedback .frm_message p{margin:0}.frm-review-notice #frmapi-feedback .frm_button_submit{background-color:var(--primary-500);border-color:var(--primary-500) !important;cursor:pointer}.frm-review-notice #frmapi-feedback .frm_button_submit:hover,.frm-review-notice #frmapi-feedback .frm_button_submit:focus{color:#fff;background-color:var(--primary-700);border-color:var(--primary-700) !important}.frm-review-notice .frm_error,.frm-review-notice label{color:#444;text-align:left}.frm-review-notice label{font-size:var(--text-sm)}.frm-floating-success-message{position:fixed;z-index:999;border-radius:4px;right:10px;bottom:10px}.frm-box-shadow-xxl{box-shadow:var(--box-shadow-xxl) !important}.frm-text-primary-500{color:var(--primary-500)}.frm-text-grey-400{color:var(--grey-400) !important}.frm-text-grey-500{color:var(--grey-500)}.frm-text-grey-600{color:var(--grey-600) !important}.frm-text-grey-700{color:var(--grey-700)}.frm-text-grey-900{color:var(--grey-900)}.frm-text-success-500{color:var(--success-500)}.frm-text-warning-500{color:var(--warning-500)}.frm_no_margin,.frm-m-0{margin:0 !important}.frm-m-12{margin:var(--gap-2xl)}.frm-m-2xs{margin:var(--gap-2xs) !important}.frm_no_top_margin,.frm-mt-0{margin-top:0 !important}.frm-mt-2xs{margin-top:var(--gap-2xs) !important}.-frm-mt-2xs{margin-top:calc(-1*var(--gap-2xs)) !important}.frm-mt-xs{margin-top:var(--gap-xs) !important}.frm-mt-sm{margin-top:var(--gap-sm) !important}.frm-mt-md{margin-top:var(--gap-md) !important}.frm-mt-lg{margin-top:var(--gap-lg) !important}.frm-mt-2xl{margin-top:var(--gap-2xl) !important}.frm-mt-auto{margin-top:auto !important}.frm_no_bottom_margin,.frm-mb-0{margin-bottom:0 !important}.frm-mb-2xs{margin-bottom:var(--gap-2xs) !important}.frm-mb-6{margin-bottom:6px !important}.frm-mb-sm{margin-bottom:var(--gap-sm) !important}.frm-mb-12{margin-bottom:12px !important}.frm-mb-xs{margin-bottom:var(--gap-xs) !important}.frm-mb-md{margin-bottom:var(--gap-md) !important}.frm-mb-lg{margin-bottom:var(--gap-lg) !important}.frm-ml-2xs{margin-left:var(--gap-2xs) !important}.frm-ml-xs{margin-left:var(--gap-xs) !important}.frm-ml-auto{margin-left:auto}.-frm-ml-2xs{margin-left:calc(-1*var(--gap-2xs)) !important}.frm-mr-auto{margin-right:auto}.frm-force-mr-auto{margin-right:auto !important}.frm-mr-2xs{margin-right:var(--gap-2xs) !important}.frm-mr-xs{margin-right:var(--gap-xs) !important}.frm-mr-2{margin-right:2px !important}.frm-mx-0{margin-left:0 !important;margin-right:0 !important}.frm-mx-xs{margin-left:var(--gap-xs) !important;margin-right:var(--gap-xs) !important}.frm-mx-sm{margin-left:var(--gap-sm) !important;margin-right:var(--gap-sm) !important}.frm-my-sm{margin-top:var(--gap-sm) !important;margin-bottom:var(--gap-sm) !important}.frm-my-xs{margin-top:var(--gap-xs) !important;margin-bottom:var(--gap-xs) !important}.frm-p-0{padding:0 !important}.frm-p-1,.frm-p-2xs{padding:var(--gap-2xs)}.frm-p-sm,.frm-p-4{padding:var(--gap-sm) !important}.frm-p-sm{padding:var(--gap-sm) !important}.frm-p-6,.frm-p-md{padding:var(--gap-md) !important}.frm-p-xl{padding:var(--gap-xl) !important}.frm-px-0{padding-left:0 !important;padding-right:0 !important}.frm-py-0{padding-top:0 !important;padding-bottom:0 !important}.frm-py-2xs{padding-top:var(--gap-2xs) !important;padding-bottom:var(--gap-2xs) !important}.frm-py-sm{padding-top:var(--gap-sm) !important;padding-bottom:var(--gap-sm) !important}.frm-pt-0{padding-top:0 !important}.frm-pt-2xs{padding-top:var(--gap-2xs) !important}.frm-pt-xs{padding-top:var(--gap-xs) !important}.frm-pt-sm{padding-top:var(--gap-sm) !important}.frm-pt-md{padding-top:var(--gap-md) !important}.frm-pt-xl{padding-top:var(--gap-xl) !important}.frm-pr-lg{padding-right:var(--gap-lg) !important}.frm-pb-md{padding-bottom:var(--gap-md) !important}.frm-pb-sm{padding-bottom:var(--gap-sm) !important}.frm-pb-xs{padding-bottom:var(--gap-xs) !important}.frm-pb-2xs{padding-bottom:var(--gap-2xs) !important}.frm-pb-0{padding-bottom:0 !important}.frm-px-sm{padding-right:var(--gap-sm) !important;padding-left:var(--gap-sm) !important}.frm-px-xs{padding-right:var(--gap-xs) !important;padding-left:var(--gap-xs) !important}.frm-px-md{padding-right:var(--gap-md) !important;padding-left:var(--gap-md) !important}.frm-text-xs{font-size:var(--text-xs) !important}.frm-text-sm{font-size:var(--text-sm) !important}.frm-text-md{font-size:var(--text-md) !important}.frm-text-lg{font-size:var(--text-lg) !important}.frm-text-xl{font-size:var(--text-xl) !important}.frm-leading-none{line-height:1}.frm-italic{font-style:italic}.frm-no-italic{font-style:normal}.frm-capitalize{text-transform:capitalize}.frm-font-normal{font-weight:400 !important}.frm-font-medium{font-weight:500 !important}.frm-font-semibold{font-weight:600 !important}.frm-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[class*=frm-line-clamp-]{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.frm-line-clamp-2{-webkit-line-clamp:2}.frm-white-space-nowrap{white-space:nowrap}.frm-rounded-sm{border-radius:var(--small-radius) !important}.frm-rounded-6{border-radius:6px !important}.frm-w-auto{width:auto !important}.frm-w-full{width:100% !important}.frm-w-half{width:50% !important}.frm-w-fit{width:fit-content !important}.frm-max-w-fit{max-width:fit-content}.frm-h-auto{height:auto !important}#wpwrap .frm-force-hidden{display:none !important}.frm_block,.frm-block{display:block}.frm_inline{display:inline}.frm-force-inline{display:inline !important}.frm_inline_block{display:inline-block !important}.frm-inline-flex,#wpbody-content .frm-inline-flex{display:inline-flex}.frm-flex{display:flex}.frm-force-flex{display:flex !important}.frm_hidden,.js .frm-hide-js{display:none}.frm-flex-box{display:flex;gap:var(--gap-sm)}.frm-flex-col{display:flex;flex-direction:column}.frm-flex-full{flex:1}.frm-force-flex-center,.frm-flex-center{justify-content:center;align-items:center}.frm-flex-center{display:flex}.frm-force-flex-center{display:flex !important}.frm-shrink-0{flex-shrink:0}.frm-gap-0{gap:0 !important}.frm-gap-2xs{gap:var(--gap-2xs)}.frm-gap-xs{gap:var(--gap-xs)}.frm-gap-sm{gap:var(--gap-sm)}.frm-gap-md{gap:var(--gap-md)}.frm-gap-xl{gap:var(--gap-xl)}.frm-justify-start{justify-content:start !important}.frm-justify-center{justify-content:center !important}.frm-justify-between{justify-content:space-between}.frm-justify-end{justify-content:end}.frm-items-center{align-items:center}.frm-items-stretch{align-items:stretch}#wpbody-content .frm-flex-wrap{flex-wrap:wrap}.frm-grow{flex-grow:1}.frm-order-first{order:-9999}.frm-order-last{order:9999}.frm-order-none{order:0}.frm-h-stack-sm,.frm-h-stack-xs,.frm-h-stack{display:flex !important;align-items:center}.frm-h-stack-sm>input[type=checkbox],.frm-h-stack-xs>input[type=checkbox],.frm-h-stack>input[type=checkbox],.frm-h-stack-sm>input[type=radio],.frm-h-stack-xs>input[type=radio],.frm-h-stack>input[type=radio]{margin:0 !important}.frm-h-stack{gap:var(--gap-2xs)}.frm-h-stack-xs{gap:var(--gap-xs)}.frm-h-stack-sm{gap:var(--gap-sm)}.frm-transition-ease{transition:all .2s ease}.frm_invisible{visibility:hidden;transition:all .2s ease}.frm_disabled{opacity:.5;cursor:default;pointer-events:none}.frm_disabled .frm-show-inline-modal{pointer-events:none !important}.frm_no_float{float:none}.frm-text-right{text-align:right}.frm-border-b{border-bottom:1px solid var(--grey-300)}.frm-no-border{border:none !important}.frm-hr{display:block;height:1px;background-color:var(--grey-200);margin:var(--gap-xs) 0}.frm-opacity-100{opacity:1}.frm-on-bottom{z-index:-1}.frm-rotate-90{transform:rotate(90deg)}.frm-cursor-pointer{cursor:pointer}.frm-align-baseline{vertical-align:baseline !important}.frm-fields p>label.frm_hidden,#wpbody-content label.frm_hidden,.frm-lookup-modal .dismiss,.frm-right-panel .inside a.frm_hidden,#form_global_settings .frm_hidden,ul.frm_form_nav>li.frm_hidden,a.frm_hidden,.button.frm_hidden,.wp-core-ui .button.frm_hidden{display:none}.postbox .inside>p.frm_no_bottom_margin:last-child{margin-bottom:0 !important}.frm_no_section_fields.frm_block{display:block}.actions.frm_visible_overflow{overflow:visible !important}.frm_full_opacity,.frm_submit .frm_full_opacity,.frm_submit .frm-opacity-100{opacity:1}.frm-dropdown-menu.frm-on-top{z-index:99999}.frm-vertical-line{display:inline-block;width:1px;height:12px;background-color:var(--grey-300)}.frm-admin-full-screen #adminmenumain,.frm-admin-full-screen #wpadminbar,.frm-admin-full-screen #adminmenuback,.frm-admin-full-screen #adminmenuwrap,.frm-admin-full-screen #wpfooter{display:none}.frm-admin-full-screen #wpcontent,.frm-admin-full-screen.auto-fold #wpcontent{margin:0;padding:0}.frm-admin-full-screen.appearance_page_starter-templates #wpbody-content{padding:0}.frm_forms.with_frm_style{max-width:100%}.post-type-frm_display .wrap>.subsubsub,.post-type-frm_display .wrap>.icl_subsubsub,.frm_form_settings>p{margin:6px var(--gap-md);padding:0}.frm-entry-container{margin:0 40px 40px;padding:0}#form_reports_page .frm-inner-content{width:calc(100% - 40px);max-width:900px;margin:20px auto;padding:20px}.frm_inner_field_container>.frm_form_fields{clear:both}.post-type-frm_display h2,.frm_wrap h2{margin-top:0 !important;font-size:var(--text-lg);line-height:var(--leading)}.post-type-frm_display .wrap>h2:first-child,.frm_wrap .wrap>h2:first-child{padding-top:0;margin-top:0 !important;font-size:var(--text-lg)}#frm_form_editor_container{position:relative;margin-top:28px}.form-field p{background:none;border:none}.form-field label.frm_primary_label{display:block;float:none;width:auto}#frm_view_editor_left label,#frm_view_editor_left .frm_primary_label,.frm-dialog .frm-sub-label,.frm-dialog label,.dropdown .frm_primary_label,.accordion-container label,.frm-fields td>label,.frm-fields td>div>label,.frm_form_field>label:first-child,.frm-fields p>label,.frm_on_submit_type>label,.post-type-frm_display .frm_form_field>label,#new_fields .frm_primary_label,#form_global_settings .frm_primary_label,#frm_form_editor_container .frm_primary_label,#permissions_settings_settings .frm_primary_label{color:var(--grey-700);margin:0 0 6px;padding:0;width:auto;font-size:var(--text-sm);display:block;line-height:var(--leading)}#frm_form_editor_container #frm-show-fields .frm_primary_label{min-height:21px}.frm-fields td input+label{display:inline}#frm_form_editor_container .edit_field_type_end_divider .frm_primary_label,#frm_form_editor_container .edit_field_type_break .frm_primary_label{display:none}form .frm_primary_label input{font-size:12px}.with_frm_style form .form-field{margin-bottom:20px}#frm_builder_page .with_frm_style form .frm_combo_inputs_container>.form-field{margin-bottom:0}.frm_description,.with_frm_style form div.description,.frm_error,.with_frm_style form div.description textarea{padding:0;font-size:11px}.with_frm_style .description{color:inherit}#frm_form_editor_container .divider_section_only .frm_primary_label{display:flex;align-items:center;gap:var(--gap-xs);font-size:20px}#frm_form_editor_container .divider_section_only .frm_primary_label .frm-sub-label{padding:0}.frm-token-container{position:relative;display:block;direction:ltr}.frm-token-container .frm-tokens{position:absolute;top:0;left:0;max-width:calc(100% - var(--gap-xl));display:flex;align-items:center;flex-wrap:wrap;gap:var(--gap-2xs);padding:6px var(--gap-xs);margin:0}.frm-token-container .frm-token{position:relative;display:flex;align-items:center;gap:var(--gap-xs);min-height:24px;height:auto;color:var(--grey-900);background:var(--grey-100);border-radius:4px;padding:0 var(--gap-xs);font-size:var(--text-md);margin:0;z-index:2}.frm-token-container .frm-token .frm-token-value{line-height:var(--leading);white-space:normal;word-break:break-word}.frm-token-container .frm-token .frm-token-remove{display:flex;flex-shrink:0;cursor:pointer}.frm-token-container .frm-token .frm-token-remove .frmsvg{color:var(--grey-900);position:static;width:12px;height:12px;padding:0}.frm-token-container .frm-token .frm-token-remove:hover .frmsvg{color:var(--error-500)}.frm-token-container .frm-show-inline-modal{z-index:3 !important}.frm-token-container .frm-token-proxy-input{position:relative;z-index:1;padding-right:var(--gap-xl) !important}form .form-field.frm_field_loading{margin-bottom:0;min-height:0;padding:0;text-align:center}.frm_sorting>.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:10px}.frm_sorting>.frm_field_loading~.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:0;display:none}.frm_description,.with_frm_style form div.description,.frm_error{margin:0}.frm_error{color:#f04438}form .frm_blank_field input,form .frm_blank_field textarea,form .frm_blank_field select,form .frm_blank_field .frm-g-recaptcha iframe,form .frm_blank_field .g-recaptcha iframe{border-color:#f04438}form .frm_blank_field label{color:#f04438}.frm_required{color:#f04438}.with_frm_style .wp-editor-container textarea,.postbox .wp-editor-container textarea,.frm_remove_border{border:none}.with_frm_style .mceIframeContainer,.postbox .mceIframeContainer{background-color:#fff}.frm_pro_license_msg{clear:left;margin-top:10px}.frm-license-input{position:relative}.frm-license-input span{font-size:var(--text-sm)}.frm-license-input .frmsvg{width:20px;height:20px;margin-left:5px;vertical-align:text-top}.frm-license-input .frmsvg,.frm-license-input span,.frm-license-input i{color:#00831a}.upgrade_to_pro{padding:10px 25px 25px;max-width:700px;margin:20px auto !important}.upgrade_to_pro .error{display:none}.toplevel_page_formidable #wpbody-content>.error{margin:1px;padding:5px 12px}.frm_error_style,.frm_warning_style,.frm_note_style2,.frm_note_style,.frm_message,#post-body-content .frm_updated_message,div.frm_updated_message{border-radius:var(--small-radius);background-color:#d5f2dc;color:#1e561f;padding:var(--gap-sm) var(--gap-md);font-size:var(--text-sm);margin:var(--gap-sm) 0;text-align:left}.frm_note_style2{background:linear-gradient(90deg, #e9effa, #fcf6fe) padding-box,linear-gradient(90deg, #1961D5, #E8ABEF) border-box;border:1px solid rgba(0,0,0,0)}#frm_top_bar+.wrap>.frm_updated_message,#frm_top_bar+.wrap>.frm_warning_style{display:inline-block;width:100%;box-sizing:border-box}#post-body-content>.frm_updated_message{margin:5px 65px}#form_global_settings #post-body-content>.frm_updated_message,#form_global_settings #post-body-content>.frm_warning_style{margin:5px 25px}.frm_error_style{color:#973937;background-color:#ebcccc;clear:both}.frm_error_style a{text-decoration:underline;font-weight:600}.frm_error_style svg{opacity:.7}.frm_warning_style{color:#7a4d05;background-color:#fff2d2}.frm_warning_heading{font-weight:700;margin-bottom:4px}.frm_warning_style{position:relative;padding-right:calc(var(--gap-md) + 15px)}body.rtl .frm_warning_style{padding-right:var(--gap-md);padding-left:calc(var(--gap-md) + 15px)}.frm-warning-dismiss{position:absolute;top:10px;right:10px;display:flex;cursor:pointer;transition:opacity .2s ease-out}body.rtl .frm-warning-dismiss{left:10px;right:auto}.frm-warning-dismiss:hover{opacity:.8}.frm-warning-dismiss.frmsvg,.frm-warning-dismiss.frmsvg svg{width:15px;height:15px}.frm_note_style{background:rgba(188,224,253,.23);color:var(--grey-700)}.frm-banner-alert{text-align:left;margin:0;border-radius:0;padding:10px 0 10px 40px}.frm-banner-alert a{color:var(--primary-500);font-weight:400;text-decoration:none}.frm_updated_message ul,.frm_updated_message li,.frm_warning_style ul,.frm_warning_style li,.frm_error_style ul,.frm_error_style li{margin:0}.frm-inline-message{border:1px solid var(--primary-700);border-radius:var(--small-radius);color:var(--primary-700);background:#fff;text-align:center;padding:20px;font-size:var(--text-sm);line-height:var(--leading)}.frm-inline-message a{text-decoration:underline;font-weight:600;color:var(--primary-700)}.frm_pro_heading span{margin-top:10px}.frm_pro_heading .alignright{text-align:right}.frm-yes{color:var(--green);font-size:var(--text-xl)}.frm-nope{color:var(--grey-400);font-size:var(--text-xl)}.upgrade_to_pro a{color:var(--orange)}.upgrade_to_pro table .frmsvg{height:var(--text-xl);width:var(--text-xl)}.upgrade_to_pro table.widefat{background-color:#fff;border-collapse:collapse}.frm-white-body .upgrade_to_pro table th,.upgrade_to_pro table td{padding:10px 15px;border:1px solid var(--grey-300);line-height:var(--leading);font-size:var(--text-sm)}.upgrade_to_pro table th.frmcenter{text-align:center}.widefat th.frm_table_break{background-color:var(--sidebar-color)}h2.frm-h2+.howto{color:var(--medium-grey);max-width:850px;margin:5px 0 20px}.frm-card{width:100%;border-radius:10px;border:1px solid var(--grey-300);opacity:1;transition:opacity 1s}.frm-card-box{max-width:524px;background-color:#fff;border-radius:var(--medium-radius);padding:var(--gap-xl);border:1px solid var(--grey-200);box-shadow:var(--box-shadow-md)}.frm-card-box.frm-has-progress-bar{position:relative;overflow:hidden;border-radius:var(--medium-radius)}.frm-card-box-progress-bar{position:absolute;top:0;left:0;right:0;height:var(--gap-xs);background-color:var(--primary-25)}.frm-card-box-progress-bar>span{position:absolute;top:0;left:0;bottom:0;width:33%;background-color:var(--primary-500)}.frm-card-box-header{display:flex;justify-content:center;margin-bottom:var(--gap-sm)}.frm-card-box.frm-has-progress-bar .frm-card-box-header{margin-top:var(--gap-xs)}.frm-card-box-content>:last-child{margin-bottom:0}.frm-card-box-footer{display:flex;justify-content:end;gap:var(--gap-sm);margin-top:var(--gap-lg)}.frm-card-box-title{font-size:var(--text-xl) !important;font-weight:600 !important;margin-bottom:var(--gap-xs)}.frm-card-box-text{font-size:var(--text-md) !important;color:var(--grey-600) !important;margin-top:0 !important}.frm-fade{opacity:0;transition:all 1s}.frm-addons .frm-card.frm-addon-not-installed{position:relative}.frm-addons .plugin-card-top{min-height:155px;padding-top:var(--gap-lg);overflow:hidden}.frm-addons .plugin-card-top h2{margin-top:0;font-weight:400}.frm-template-row p,.frm-addons .plugin-card-top p{opacity:.8}.frm-addons .plugin-card-top>:not(p):not(h2){display:none}.frm-addons .plugin-card-bottom{padding:5px 20px 20px;text-align:center;background:rgba(0,0,0,0);border-top:none}.frm-addons .plugin-card-bottom,.frm-addons .plugin-card-bottom .button{font-size:15px}.frm-addons .button,.frm-addons .frm-button-tertiary{float:right}.frm-addons .addon-status{float:left;padding-top:4px}.frm-addon-not-installed .frm-activate-addon,.frm-addon-not-installed .frm-deactivate-addon,.frm-addon-not-installed .frm-uninstall-addon,.frm-addon-installed .frm-install-addon,.frm-addon-installed .frm-deactivate-addon,.frm-addon-active .frm-activate-addon,.frm-addon-active .frm-install-addon,.frm-addon-active .frm-uninstall-addon,.plugin-card-pro.frm-addon-active .button,.plugin-card-pro.frm-addon-active .frm-button-tertiary{display:none !important}.frm-save-and-reload-options{margin-top:10px;font-size:13px}.frm-save-and-reload,.frm-save-and-reload+.frm-button-secondary{visibility:visible !important}.addon-status-label{opacity:.7}.frm-addon-active .addon-status-label{color:var(--green);opacity:1}.frm-addon-error{position:absolute;top:55px;left:10px;right:10px;font-weight:700;text-align:center}.frm-new-template.plugin-card-bottom{overflow:visible}#frm-new-template p:first-child{margin-top:0}.frm-admin-page-formidableedit #wpbody-content>*:not(.frm-review-notice):not(.frm_previous_install):not(.frm-banner-alert):not(#frm-svg-icons-pack),#wpbody-content>.updated,#wpbody-content>#update-nag,#wpbody-content>.update-nag,#wpbody-content>.notice,#wpbody-content>.error:not(.frm_previous_install),.frm-white-body .updated,.frm-white-body .notice,.frm_wrap>.wrap>.notice,.frm-white-body .error:not(.frm_previous_install){display:none}.frm-admin-page-formidableedit #frm_builder_page{display:block !important}.frm-white-body .updated,.frm-white-body .error{margin:0;padding:10px 20px}.frm-modal:not(#frm-dismissable-cta) .postbox{max-height:600px;overflow:hidden;margin-bottom:0}.frm-modal .postbox .frm_modal_top,.frm-dialog .frm_common_modal .postbox>div:first-child,.frm-error-modal .frm_modal_top{padding:var(--gap-md) var(--gap-md) 0;position:relative}.frm-modal h2,.frm-modal .postbox .inside h2,.frm-modal .postbox .frm-modal-title,.frm-dialog .frm_common_modal .postbox>div:first-child>div:first-child,.frm-error-modal .frm-modal-title{display:inline-block;font-size:var(--text-lg);color:var(--grey-900);font-weight:600;margin:0;padding:0}.frm-modal h3{font-weight:500}.frm-inline-modal>a.dismiss,.frm-modal .postbox>a.dismiss,.frm-modal .postbox .frm-modal-title+div:last-child,.frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{position:absolute;top:19px;right:19px;display:flex;z-index:2}body.rtl .frm-inline-modal>a.dismiss,body.rtl .frm-modal .postbox>a.dismiss,body.rtl .frm-modal .postbox .frm-modal-title+div:last-child,body.rtl .frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{right:unset;left:30px}.frm-info-modal .postbox>a.dismiss,.frm-inline-modal>a.dismiss{right:13px;top:13px}.frm-modal .postbox .frm-modal-title+div:last-child a,.frm-modal a.dismiss .frmsvg,.frm_common_modal .frm_modal_top a .frmsvg{color:var(--grey-500)}.frm-modal .postbox .frm-modal-title+div:last-child a:hover,.frm-modal a.dismiss .frmsvg:hover,.frm_common_modal .frm_modal_top a .frmsvg:hover{color:var(--grey-700)}.frm-modal .frm_modal_content>div.inside,.frm_common_modal .frm_modal_content>div.inside{padding:var(--gap-md);margin:0;font-size:var(--text-sm);color:var(--grey-700)}.frm-modal p{color:var(--grey-900)}.frm_common_modal .postbox{display:flex;flex-direction:column}.frm-modal .postbox>div.inside .cta-inside{overflow-y:auto;height:auto}.frm_modal_footer{padding:0 var(--gap-md) var(--gap-sm);text-align:right}body.frm-body-with-open-modal{overflow-y:hidden}.frm-templates-list{margin-top:0}.frm-templates-list.frm_grid_container li{margin-bottom:0}.frm-templates-list li{vertical-align:top;position:relative;box-sizing:border-box;border-radius:6px;border:1px solid rgba(0,0,0,0);text-align:left}.frm-templates-list li:not(.frm_hidden){display:inline-block}.frm-templates-list.frm-categories-list li{width:100%}.frm-templates-list li.frm-selectable{cursor:pointer}.frm-templates-list li.frm-selectable:hover{background:var(--light-blue);border-color:rgba(65,153,253,.5)}.frm-templates-list li.frm-selectable:hover h3,.frm-templates-list li.frm-selectable:hover p{max-width:calc(100% - 65px)}.frm-templates-list .frm-featured-form{display:flex;width:100%}.frm-templates-list li .frm-featured-form{padding:7px 5px}.frm-templates-list li li>div{padding-left:0}.frm-templates-list li>div>div{vertical-align:middle}.frm-category-icon,.frm-icon-wrapper{background:var(--primary-500);border-radius:var(--small-radius);color:#fff;width:32px;height:32px;font-size:18px;box-sizing:border-box;align-self:center;justify-content:center;align-items:center;display:inline-flex}.frm-templates-list li .frm-category-icon{overflow:hidden}.frm-templates-list li h3,.frm-templates-list li p{text-align:left;margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.frm-templates-list li h3,.frm-templates-list .frm-install-template h3{font-size:var(--text-sm) !important}.frm-templates-list .frm-install-template div{text-align:left}#frm_leave_email,#frm_code_from_email{width:480px;max-width:100%}.frm-templates-list.frm-categories-list li>div>div:last-child{padding-left:0}.frm-hover-icons{position:absolute;right:0;top:17px;max-width:91px;height:100%;box-sizing:border-box;padding:0 10px 0 5px !important;border-radius:var(--small-radius);text-align:right;display:flex;gap:5px}.frm-ready-made-solution .frm-hover-icons{visibility:hidden}.frm-ready-made-solution:hover .frm-hover-icons{visibility:visible}.frm-hover-icons a{width:22px;height:22px;font-size:var(--text-md);display:inline-flex;align-items:center;justify-content:center;border-radius:50%;box-sizing:border-box;line-height:var(--leading);text-align:center}.frm-hover-icons>.frm-preview-form,.frm-hover-icons>.frm-delete-form{border:1px solid var(--primary-500)}.frm-hover-icons>.frm-create-form,.frm-ready-made-solution .frm-hover-icons a{background-color:var(--primary-500)}.frm-hover-icons>a .frmsvg{width:14px;height:14px;vertical-align:baseline}.frm-hover-icons>.frm-preview-form .frmsvg,.frm-hover-icons>.frm-delete-form .frmsvg{color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form{background-color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form .frmsvg{background-color:var(--primary-500)}.frm-ready-made-solution .frmsvg{width:14px;height:14px}.frm-hover-icons .frm-create-form svg,.frm-ready-made-solution .frm-hover-icons svg{color:#fff}.frm-hover-icons .frm-create-form:hover,.frm-ready-made-solution .frm-hover-icons a:hover,.frm-hover-icons>.frm-unlock-form:hover,.frm-hover-icons>.frm-unlock-form:hover .frmsvg{background-color:var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover,.frm-hover-icons .frm-delete-form:hover{border:1px solid var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover .frmsvg,.frm-hover-icons .frm-delete-form:hover .frmsvg{color:var(--primary-700) !important}.frm-application-card h4 .frmsvg,.frm-locked-template h3 .frmsvg{height:var(--text-sm);width:var(--text-sm);vertical-align:text-top;color:var(--grey-500)}.frm-modal-back{cursor:pointer;margin-right:4px}.frm-modal-cancel{float:left}.frm-meta-tag,.frm-meta-tag:hover{padding:var(--gap-2xs) var(--gap-xs);border-radius:var(--small-radius);font-weight:600;display:inline-flex;background-color:#d9ebff;gap:2px}.frm-meta-tag.frm-grey-tag,.frm-meta-tag.frm-grey-tag:hover{background-color:var(--sidebar-hover);color:var(--grey-900)}.frm-meta-tag.frm-red-tag,.frm-meta-tag.frm-red-tag:hover{background:var(--error-100);color:var(--error-700)}.frm-meta-tag.frm-orange-tag,.frm-meta-tag.frm-orange-tag:hover{background-color:#fef7f4;color:var(--orange)}.frm-meta-tag.frm-green-tag,.frm-meta-tag.frm-green-tag:hover{background-color:var(--success-500);color:#fff}.frm-entry-status-0,.frm-meta-tag.frm-lt-green-tag,.frm-meta-tag.frm-lt-green-tag:hover{background-color:var(--success-100);color:var(--success-800)}.frm-meta-tag.frm-new-pill{background-color:var(--success-500);vertical-align:text-bottom}.frm_add_field span+.frm-meta-tag{margin-left:0}.frm-entry-status{font-weight:500}.frm-entry-status-1{color:#7a4d05;background:#fff2d2}#frm-create-footer{padding:15px 20px}li .frm-hover-icons .frm-preview-form,.frm-hover-icons .frm-unlock-form,.frm-locked-template .frm-hover-icons .frm-create-form,.frm-modal-back{display:none}.frm-locked-template .frm-hover-icons .frm-unlock-form,li[data-preview] .frm-hover-icons .frm-preview-form{display:inline-flex}.frm-modal-back svg{color:#7f7f7f}#frm-upgrade-body-list-wrapper>div{display:inline-block;width:33.3333333333%;vertical-align:top;text-align:left;margin-bottom:10px}#frm-upgrade-body-list-wrapper ul{padding-left:40px}#frm-upgrade-body-list-wrapper ul li::before{content:"\2022";color:var(--primary-500);display:inline-block;width:1em;margin-left:-1em}.frm-embed-modal-content{padding:var(--gap-md)}.frm-embed-modal-content.frm-loading-page-options{display:flex;justify-content:center}#frm_embed_modal .frm_embed_example{background:var(--sidebar-color);border:1px solid var(--sidebar-hover);border-radius:var(--small-radius);color:var(--grey-900);font-size:var(--text-sm);padding-right:var(--gap-lg);width:100%;height:auto !important;resize:none}#frm_embed_modal textarea.frm_embed_example{padding-bottom:0}.frm-embed-modal-content>div a{position:absolute;right:0;top:0}.frm-embed-modal-content>div{position:relative;margin-bottom:var(--gap-sm)}.frm-embed-modal-content>div:last-child{margin-bottom:0}.frm-embed-modal-content svg[id^=frm_copy_embed_]{position:absolute;bottom:10px;right:10px;cursor:pointer;opacity:.5}.frm-border-info-box,.frm-embed-modal-option{border-radius:var(--small-radius);border:1px solid var(--grey-300);padding:var(--gap-sm);cursor:pointer;display:flex;gap:var(--gap-sm);font-size:var(--text-sm)}.frm-embed-modal-option+.frm-embed-modal-option{margin-top:var(--gap-sm)}.caret.rotate-270,.frm-embed-modal-option .caret{align-self:center;margin-left:auto;transform:rotate(-90deg)}#frm_embed_modal .frm_modal_footer{display:none}#frm_embed_modal.frm-on-page-2 .frm_modal_footer{display:block}.frm-embed-modal-content ul{max-height:300px;overflow-y:scroll}.frm-embed-modal-wrapper.frm-dialog{overflow:visible}#frm-bulk-modal .frm_grid_container{grid-template-columns:repeat(12, 8.33%);grid-gap:0}#frm-bulk-modal .frm8{border-right:1px solid var(--grey-300);padding:10px 20px 10px var(--gap-lg)}#frm-bulk-modal .frm4{padding:10px 0}.frm-inline-modal .howto{margin:5px 0 10px;color:var(--grey)}.frm-inline-modal .frm_code_list+.howto{margin-bottom:0}#frm_bulk_options{height:240px;width:100%;border:none;box-shadow:none;padding:0}.frm-bulk-edit-link{display:flex;align-items:center;justify-content:flex-end;gap:var(--gap-2xs);font-size:var(--text-sm);margin:12px 0 12px auto}.frm-bulk-edit-link .frm-bulk-edit-link{margin:0}.frm-small-add{font-size:var(--text-sm) !important}.frm-small-add span{color:var(--primary-500);font-size:12px;height:12px;width:12px}.frm_no_captcha_text{font-weight:700;color:#a00}.frm_image_from_url{height:50px}h1 .fa-caret-down{font-size:18px}.caret{display:inline-block;width:19px;height:9px;margin-right:-8px;vertical-align:middle}.caret,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,.frm_wrap .ui-autocomplete-input{background:rgba(0,0,0,0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%;padding-right:var(--gap-lg) !important}.caret{padding-right:var(--gap-xs) !important;background-position-x:5px}.frm-btn-group .caret{float:right;margin-top:calc(var(--text-md)/2)}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.frm_wrap .ui-autocomplete,#frm_adv_info.frm-dropdown-menu,.frm-dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;padding-left:4px;padding-right:4px;margin:var(--gap-xs) 0 0;text-align:left;list-style:none;background:none;background-color:#fff;background-clip:padding-box;border:1px solid var(--grey-100);border-radius:.25rem;box-shadow:var(--box-shadow-lg);max-height:200px;overflow-y:auto;overflow-x:hidden;font-size:var(--text-md);width:auto;min-width:160px}.frm6 .frm-dropdown-menu{min-width:100px;max-width:99%}#frm_bs_dropdown .frm-dropdown-menu{max-width:400px}.field_type_list .frm-dropdown-menu{min-width:150px !important}#frm_field_group_controls .frm-dropdown-menu,.frm-field-action-icons .frm-dropdown-menu{min-width:180px !important}.frm-field-action-icons .frm-dropdown-toggle svg{color:#9ea9b8}.multiselect-container.frm-dropdown-menu,#search-submit .frm-dropdown-menu{min-width:200px !important}.preview .frm-dropdown-menu{min-width:230px !important}.frm-dropdown-menu.dropdown-menu-right{right:0;left:auto}.frm-dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.frm-dropdown-menu>.dropdown-item{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu .frm_dropdown_li{clear:both;font-weight:400;white-space:nowrap;text-decoration:none;border-radius:var(--small-radius)}.frm-dropdown-menu>.active>a,.frm-dropdown-menu>.active>a:hover,.frm-dropdown-menu>.active>a:focus{text-decoration:none;outline:0}.frm-select-list-item.disabled,.frm-dropdown-menu>.disabled>a,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{color:#999}.frm-select-list-item.disabled:hover,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:rgba(0,0,0,0);background-image:none;cursor:not-allowed}.open>.frm-dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 10px;font-size:var(--text-xs);color:var(--grey-400)}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.dropdown-menu-right>.frm-dropdown-menu,.pull-right>.frm-dropdown-menu{right:0;left:auto}.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.navbar-fixed-bottom .dropdown .frm-dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.btn{border:1px solid #ddd;background:#fff;height:28px;line-height:var(--leading)}a.frm_option_icon::before{color:var(--primary-500);font-size:22px;width:22px;height:22px}a.frm_option_icon:focus::before,a.frm_option_icon:hover::before{color:var(--primary-700)}.frm_top_left .frm-dropdown-toggle{color:#999}.frm-card ol{margin-left:15px}.frm-dropdown-toggle{text-decoration:none}.frm-card .frm-dropdown-toggle{border:1px solid var(--grey-300);border-radius:var(--small-radius);font-size:13px;color:var(--grey-700);padding:7px 20px}.frm_actions_dropdown .frm-dropdown-menu{font-size:var(--text-sm);color:#5f6c72}.frm-dropdown-menu .frm_icon_font{vertical-align:middle;color:#5f6c72;margin-right:3px}.multiselect-container.frm-dropdown-menu{top:auto;left:auto;font-size:var(--text-sm);padding:4px;margin-bottom:3px}#post-body-content+.frm-right-panel h3.accordion-section-title{padding:7px 10px 8px 14px;font-size:var(--text-md);color:var(--grey-700)}.frm-with-line,.accordion-section-content h4{font-size:var(--text-md);font-weight:400;margin:20px -20px 10px;padding:0 20px;color:var(--grey-700);position:relative;border:none !important}.frm-with-line span,.accordion-section-content h4 span{background:#fff;padding:0 var(--gap-xs);position:relative;display:inline-block;z-index:2}.accordion-section-content h4 span{background:var(--sidebar-color)}.frm-right-panel .frm-with-line span{background:var(--sidebar-color) !important;margin-left:-4px}.frm-right-panel .frm-inline-modal .frm-with-line span{background:#fff !important}.frm-with-line::before,.accordion-section-content h4::before{content:"";display:block;position:absolute;border-bottom:1px solid var(--grey-300);left:0;width:100%;top:50%}.control-section .accordion-section-title::after,.customize-pane-child .accordion-section-title::after{top:15px}.accordion-container .frm-dropdown-menu{min-width:40px}.frm-btn-group .multiselect.dropdown-toggle{box-sizing:border-box;min-height:unset;cursor:pointer}.accordion-container .frm-dropdown-menu::before,.accordion-container .multiselect.dropdown-toggle::before{font-family:"s11-fp" !important}.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0;width:100%;max-width:250px}.multiselect-container button.multiselect-option{width:100%;text-align:left;border:none;margin-bottom:4px}.multiselect-container button.multiselect-option label{margin-left:5px}.accordion-container .multiselect-container label{padding:3px 19px 3px 7px}.frm-btn-group.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.frm-btn-group.btn-group,.frm-btn-group.btn-group-vertical{display:block}.multiselect-option label{max-width:calc(100% - 22px);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_scale{text-align:center;float:left;margin-right:10px}.frm_scale input{display:block;margin:5px}.frm_multi_fields_container{float:left}.frm_multi_fields_container,.frm_form_builder .frm_form_fields input[type=tel] .frm_form_builder .frm_form_fields input[type=range],.frm_form_builder .frm_form_fields input[type=text]{width:100%;height:auto}.frm_form_builder .frm_time_wrap .frm_time_sep{vertical-align:sub;vertical-align:-webkit-baseline-middle}.frm_form_builder input[type=range]::-webkit-slider-runnable-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-moz-range-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-lower{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-upper{background-color:var(--blue-border)}.frm-embed-field-placeholder{text-align:center;height:145px;display:flex;align-items:center;justify-content:center}.frm-fake-field{display:block;height:25px;background-color:var(--light-blue);border:1px solid var(--grey-300);margin:10px 0;border-radius:var(--small-radius)}.frm-embed-message{position:absolute;background:#fff;border:1px solid var(--grey-300);color:var(--grey-700);padding:var(--gap-md);font-size:var(--text-lg);max-width:200px;min-width:50%;margin:0 var(--gap-md);overflow:hidden;text-overflow:ellipsis}.frm-summary-message{top:50%;left:50%;padding:15px 0;font-size:var(--text-md);transform:translate(-50%, -50%)}.frm-summary-learn-more{font-size:inherit !important}.frm-single-settings .frm-embed-message{width:100%;position:static;border-radius:var(--small-radius)}#new_fields input[type=text],#new_fields input[type=number],.frm_field_box .frm_form_fields>textarea,.frm_form_fields .frm_form_field>textarea,.frm_form_fields .frm_form_field>input[type=email],.frm_form_fields .frm_form_field>input[type=url],.frm_form_fields .frm_form_field>input[type=number],.frm_form_fields .frm_form_field>input[type=tel],.frm_form_fields .frm_form_field>input[type=text],.frm_form_fields .frm_form_field>input[type=range]{width:100%}.frm_form_fields textarea.wp-editor-area{width:100%;border:none}.frm_form_fields input[type=file],.frm_form_fields input[type=file]:disabled{background:rgba(0,0,0,0);border:none;box-shadow:none;width:auto}.frm_form_fields select{width:auto;max-width:100%}input[type=radio],input[type=checkbox]{width:16px;padding:0}.frm_grid_container>p,.frm_grid_container>p.frm_form_field,.frm_grid_container>div.frm_form_field,#new_fields .frm_grid_container>p{margin-top:8px;margin-bottom:8px;margin-right:0}.frm_grid_container>p>label:only-child,.frm_grid_container>p.frm_form_field>label:only-child,.frm_grid_container>div.frm_form_field>label:only-child,#new_fields .frm_grid_container>p>label:only-child{margin-bottom:0}.frm_grid_container>.frm-has-modal>p:only-child{margin-bottom:var(--gap-xs)}#new_fields div.frm_grid_container>.frm_primary_label{margin-top:8px}#new_fields .frm_primary_label+p,#new_fields .frm_primary_label+.frm6+.frm6,#new_fields .frm_primary_label+.frm6+.frm-inline-modal+.frm6{margin-top:0}.frm_catlevel_2,.frm_catlevel_3,.frm_catlevel_4,.frm_catlevel_5{margin-left:18px}.frm_wrap .frm-fields .auto_width,.frm_form_fields input.auto_width,.frm_form_fields select.auto_width,.frm_form_fields textarea.auto_width{width:auto !important}.frm_form_fields select.auto_width{min-width:60px}.frm_form_fields input:focus,.frm_form_fields select:focus,.frm_form_fields textarea:focus,.frm_focus_field input{background-color:#fff;border-color:#ddd}.frm_form_builder .frm_radio,.frm_form_builder .frm_checkbox{display:block;margin-bottom:2px}.frm_form_builder .frm_radio label,.frm_form_builder .frm_checkbox label{font-size:var(--text-sm)}.horizontal_radio .frm_radio,.horizontal_radio .frm_checkbox{margin-right:5px;display:inline-block}.frm_form_builder .frm_opt_container .frm_radio.frm_image_option label,.frm_form_builder .frm_opt_container .frm_checkbox.frm_image_option label{display:flex;align-items:center;gap:9px;white-space:normal}.frm_form_field.frm_two_col .frm_opt_container,.frm_form_field.frm_three_col .frm_opt_container,.frm_form_field.frm_four_col .frm_opt_container{display:grid;grid-template-columns:repeat(2, 1fr);grid-auto-rows:max-content;grid-gap:0 2.5%}.frm_form_field.frm_three_col .frm_opt_container{grid-template-columns:repeat(3, 1fr)}.frm_form_field.frm_four_col .frm_opt_container{grid-template-columns:repeat(4, 1fr)}.frm_form_field.frm_two_col .frm_radio,.frm_form_field.frm_two_col .frm_checkbox,.frm_form_field.frm_three_col .frm_radio,.frm_form_field.frm_three_col .frm_checkbox,.frm_form_field.frm_four_col .frm_radio,.frm_form_field.frm_four_col .frm_checkbox{grid-column-end:span 1}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap .with_frm_style .frm_radio input[type=radio],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_scale input[type=radio],.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{width:15px;min-width:15px;height:15px;border:1px solid var(--grey-300);box-shadow:var(--box-shadow-sm);-webkit-appearance:none}.frm_wrap input[type=radio]{border-color:var(--grey-300);box-shadow:var(--box-shadow-sm)}.frm_wrap input[type=radio]:checked::before{background-color:var(--primary-500)}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_checkbox input[type=checkbox]{border-radius:4px}.frm-white-body input[type=checkbox]:checked,.frm_wrap input[type=checkbox]:checked{background-color:var(--border-color-active, var(--primary-500)) !important;border-color:var(--border-color-active, var(--primary-500)) !important}.frm-white-body input[type=checkbox]:checked:focus,.frm_wrap input[type=checkbox]:checked:focus{border-color:var(--border-color-active, var(--primary-500))}.frm-white-body input[type=checkbox]:checked::before,.frm_wrap input[type=checkbox]:checked::before{content:"";display:block;width:100% !important;height:100% !important;background-image:url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6667 1.5L4.25001 7.91667L1.33334 5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A") !important;background-size:8px !important;background-repeat:no-repeat !important;background-position:center !important;margin:0}.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{margin-right:5px}.frm_inner_field_container{margin-bottom:10px}.frm_conf_inline .frm_inner_field_container,.frm_conf_inline .frm_inner_conf_container{width:49%;float:left}.frm_conf_inline .frm_inner_field_container{margin-right:2%;clear:both}.frm_inner_field_container>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>label,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>label,li.ui-state-default.selected>.frm_inner_field_container>label{max-width:calc(100% - 100px)}.frm-drag-fade{background-color:var(--lightest-grey) !important;border-radius:4px}.frm-drag-fade *{opacity:0}.frm-dragging .divider_section_only,.frm-dragging .frm_field_box{pointer-events:none}.frm_form_settings #op-popup,.frm_form_settings com-1password-op-button,.frm_conf_below .frm_conf_field_container .frm_primary_label,.frm_conf_inline .frm_inner_field_container .frm-show-click a,.frm_conf_below .frm_conf_field_container .frm-show-click a{display:none !important}.frm_conf_inline .frm_inner_field_container .frm-field-action-icons{position:absolute;right:5px}.frm_conf_below .frm_conf_field_container{margin-top:10px}.frm_calc_dec{width:50px}.frm_ext_sc{display:none}.frm_long_input{width:100% !important;box-sizing:border-box}.frmcenter{text-align:center}img.frm_help{margin-left:2px;vertical-align:middle;padding-bottom:2px}.frm_spinner.frm-wait,.frm_spinner.spinner{float:left;visibility:hidden;margin:0 10px}.frm_visible_spinner.frm-wait,.frm_visible_spinner.spinner{visibility:visible;float:none}.frm_form_action_settings .frm_spinner.frm-wait,.frm_form_action_settings .frm_spinner.spinner{visibility:visible;float:none;vertical-align:bottom}.frm_form_action_settings .frm_loading{font-size:15px;text-align:center}.frm_ajax_settings_tab .frm-wait,.frm_ajax_settings_tab .spinner{visibility:visible;float:none;margin-top:20px}.wp-core-ui .frm_loading_button.button-primary.frm-button-primary,.frm_loading_button,.frm_loading_form.frm_button_submit{position:relative !important;opacity:.8;color:rgba(0,0,0,0) !important;text-shadow:none !important}.frm_loading_button:hover,.frm_loading_button:active,.frm_loading_button:focus,.frm_loading_form.frm_button_submit:hover,.frm_loading_form.frm_button_submit:active,.frm_loading_form.frm_button_submit:focus{cursor:not-allowed;color:rgba(0,0,0,0) !important;outline:none !important;box-shadow:none}.frm-wait{margin:20px;width:20px;height:20px;position:relative;display:inline-block}#frm-show-fields .frm-wait:only-child{position:absolute;left:50px;top:30px}.frm-wait::before,.frm_loading_button::before,.frm_loading_form.frm_button_submit::before{content:"";display:inline-block;position:absolute;background:rgba(0,0,0,0);border:1px solid #fff;border-top-color:rgba(0,0,0,0);border-left-color:rgba(0,0,0,0);border-radius:50%;box-sizing:border-box;top:50%;left:50%;margin-top:-10px;margin-left:-10px;width:20px;height:20px;animation:spin 2s linear infinite}.frm-wait::before{border-bottom-color:var(--primary-700);border-right-color:var(--primary-700)}.frm_loading_button.frm-button-secondary::before{border-bottom-color:var(--primary-500);border-right-color:var(--primary-500)}input[type=submit]:focus{outline:none !important}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}label input[type=checkbox],label input[type=radio]{vertical-align:inherit}#editorcontainer #dyncontent{margin:0;width:100%;padding:6px;line-height:var(--leading);border:0 none;outline:none;box-sizing:border-box}.frm_postbox_icon{margin:-6px 0 0 -10px}.frm_form_builder a:hover{text-decoration:underline}.frm_form_builder .widget-title h4{padding:10px 15px}.frm_form_builder .widget-top a.widget-action::after{margin:7px 12px 0}.frmbutton.frm_tgateway{display:none !important}.frm_html_legend pre{display:inline}#ed_fullscreen{display:none !important}.frm_posttax_opt_list{overflow:auto;max-height:200px;background-color:#fff}.frm_posttax_opt_list p.howto{font-size:12px}.frm_border_bottom{border-bottom:1px solid var(--grey-300);margin-bottom:10px;padding-bottom:10px}.frm_posttax_opt_list .frm_border_bottom span.howto{padding-right:10px}.frm_posttax_opt_list .frm_border_bottom input{margin-right:1px}.frm_add_remove div.frm_form_field{padding-bottom:5px}.frm_field_opts_list{max-height:260px;overflow:auto}.frm_white_bg{background-color:#fff}.frm_border_light{border:solid 1px #ddd}#new_fields .form-table input[type=text],#new_fields .form-table select,.form-table .form-field input,.form-table .form-field .quicktags-toolbar input,.form-field input,.form-field .quicktags-toolbar input{width:auto}.frm_aff_link{float:right}.frm_select_box{text-align:center;font-weight:700;width:100%;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box{text-align:left;font-weight:400;font-size:inherit !important;border:none;padding:0 !important;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box:focus{outline:none;box-shadow:none}.wp-list-table .frm_no_items.frm_select_box{text-align:center;font-weight:700;width:500px;max-width:100%;font-size:inherit}#frm-options-panel{padding:0 var(--gap-sm);color:var(--grey-900);overflow:hidden}.frm-right-panel a.frm_add_logic_link,#frm-options-panel h3{font-size:var(--text-md);font-weight:500;background-color:#fff;border-radius:var(--small-radius);padding:18px var(--gap-sm);margin:2px calc(-1*var(--gap-sm));transition:background-color 200ms ease-out,box-shadow 200ms ease-out,color 200ms ease-out}.frm-right-panel a.frm_add_logic_link .frmsvg,#frm-options-panel h3 .frmsvg{width:13px;height:13px;color:var(--grey-500);transition:transform 300ms ease-in}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type),.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type),#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child{color:var(--grey-700);box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type) .frmsvg,.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child .frmsvg,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type) .frmsvg,#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child .frmsvg{transform:rotate(-180deg)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div,#frm-options-panel h3:not(.frm-collapsed)+div{padding-top:6px;padding-bottom:6px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container{padding-bottom:14px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link.frm-collapsed,#frm-options-panel h3.frm-collapsed{color:var(--grey-500);background-color:rgba(0,0,0,0)}.frm-right-panel a.frm_add_logic_link:hover,#frm-options-panel h3:hover{color:var(--grey-700);background-color:#fff;box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:focus-visible,#frm-options-panel h3:focus-visible{outline:1px solid var(--primary-500) !important;outline-offset:-1px}.frm-right-panel a.frm_add_logic_link:focus{outline:auto}.frm_field_key{background-color:#f7f7f7}#frm_form_editor_container #edit-slug-box{padding:0}.frm-alt-table{position:relative;width:100%;border-collapse:collapse;margin-top:.5em;font-size:15px}#form_show_entry_page .frm-alt-table:not(.frm-zebra-striping)::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff}.frm-alt-table th{width:200px}.frm-alt-table tr,.frm-alt-table tr.frm-odd{background-color:rgba(0,0,0,0)}.frm-alt-table tr.frm-even{background-color:var(--sidebar-color)}.frm-alt-table th,.frm-alt-table td{background-color:rgba(0,0,0,0);vertical-align:top;text-align:left;padding:20px}.frm-alt-table h3{margin-bottom:0}.form-field .frm_cb_button{height:22px;line-height:20px;margin-bottom:10px;margin-right:5px}.edit_field_type_select .frm_option_val_label{margin-left:12px}.frm_rte{background:url(../images/rte.png) no-repeat}.frm_rte .howto{margin:10px 0 46px}.subform_section{margin:25px}.subform_section,.subform_section label,.subform_section input{opacity:80}.subform_section .frm_sortable_field_opts{display:none}#frm_form_editor_container .subform_section .frm_primary_label{display:block}.subform_section.subform_break{border-top:1px dashed #ccc}.button-secondary.frm_html_field{background-color:#ededed;padding:10px 20px;line-height:inherit;width:auto;height:auto !important;border-radius:0;box-sizing:content-box}.frm_html_field_placeholder{margin-bottom:10px;text-align:center}.recaptcha_placeholder{border:1px solid #d3d3d3;width:300px}.turnstile_placeholder{width:300px}.frm_sorting .frm_rte textarea{width:653px;background:#fff;margin:1px 0 0;border:1px solid #dfdfdf;border-top:none;border-radius:0;float:none !important}.frm_full_rte textarea{width:98%;padding:0}.frm_field_box{padding:5px;min-height:20px;margin:10px 0}.frm_indent_opt,td.frm_indent_opt{padding-left:25px}.frm_charts object{background:rgba(0,0,0,0)}.frm_charts h2{height:34px}.frm_single_option.ui-sortable-placeholder,li.sortable-placeholder{border:none;margin:0;visibility:visible !important;box-shadow:2px -10px 0 2px var(--primary-500)}#frm_form_editor_container>ul>.frm_single_option.ui-sortable-placeholder,#frm_form_editor_container>ul>li.sortable-placeholder{width:calc(100% - 5px) !important;height:0 !important}#frm_form_editor_container>ul>li>ul{position:relative}#frm_form_editor_container>ul>li>ul>li.sortable-placeholder,#frm_form_editor_container ul.start_divider>li>ul>li.sortable-placeholder{position:absolute;top:20px;bottom:0}.edit_field_type_divider+li.sortable-placeholder{box-shadow:2px 5px 0 2px var(--primary-500)}.start_divider li.sortable-placeholder{box-shadow:2px -5px 0 2px var(--primary-500)}.frm-is-collapsed+.sortable-placeholder{box-shadow:2px 15px 0 2px var(--primary-500)}.frm_single_option.ui-sortable-placeholder{box-shadow:0 0 1px 1px var(--primary-500)}.frm_sorting>li.edit_field_type_end_divider:first-child,.frm-show-click,li.ui-state-default.edit_field_type_divider .frm-show-click{display:none}.frm_form_field.ui-sortable-helper .frm-field-action-icons,.frm_form_field.ui-sortable-helper .frm_form_fields,.frm_form_field.ui-sortable-helper .frm_description,.frm_form_field.ui-sortable-helper .description{display:none}.frm_form_field.ui-sortable-helper .frm_primary_label,.frm_form_field.ui-sortable-helper .frm_inner_field_container{margin:0 !important}.frm-single-settings .frm-show-click{display:block !important}.frm-show-hover,.frm_single_visible_hover,li.ui-state-default.edit_field_type_divider .frm-show-hover{opacity:0;transition:opacity .15s ease-in-out}#frm-show-fields .frm-field-settings-open .frm-show-hover{opacity:1}.frm_sortable_field_opts{margin-top:5px}.frm_single_option{clear:both;margin:0 !important;padding-bottom:5px}.frm_single_option input[type=radio],.frm_single_option input[type=checkbox]{margin-top:0}.frm_single_option .frm-with-right-icon input[type=text]+.frmsvg{position:relative;right:27px;width:14px;height:14px;padding:0;margin:var(--gap-2xs) 0 0}.frm_product_price_wrapper,.frm_image_preview_wrapper,#new_fields .frm_single_option select,#new_fields .frm_single_option input[type=text]{width:calc(100% - 106px) !important;flex-grow:1}.frm-right-panel .frm_single_option a.frm_remove_tag,.frm_single_option a{padding-left:7px}.frm_single_option:hover .frm_single_visible_hover{opacity:100}.frm_single_option .frm-drag{font-size:23px;width:24px;height:24px;margin-left:-6px;margin-right:var(--gap-xs);color:var(--grey-500)}.frm_single_option .frm-drag::before{vertical-align:middle}.frm-drag,.frm_single_option.ui-sortable-helper{cursor:move}.frm_single_option .frm_option_key{margin-left:19px !important}.frm_option_key input[type=text]{margin-top:var(--gap-xs) !important;margin-left:11px !important}.frm_option_key input[type=checkbox]+input[type=text],.frm_option_key input[type=radio]+input[type=text]{margin-left:30px !important}li.ui-state-default.selected .frm-show-click,li.ui-state-default.selected.edit_field_type_divider .frm-show-click{display:inline;vertical-align:top}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>.frm-show-hover,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{opacity:100}li.frm_field_box>ul.frm_grid_container{position:relative}.frm_sorting span.ui-icon{width:16px}body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) .frm_image_options .frm_image_option_container{--field-border-width: 1px;--border-color: var(--grey-300);--border-color-active: var(--primary-500);--border-radius: var(--small-radius)}#form_show_entry_page .frm_file_link,#form_show_entry_page .frm_image_option_container{display:inline-flex;flex-wrap:nowrap;flex-direction:column;text-align:center;align-items:center;width:150px;margin-right:10px;margin-bottom:10px}#form_show_entry_page .frm_image_option_container img{width:150px;height:150px;object-fit:cover}#form_show_entry_page .frm_file_link img{max-width:150px;height:auto}#form_show_entry_page .frm_file_link~br{display:none}#form_show_entry_page .frm_upload_label{padding:10px}#form_show_entry_page.frm_wrap .postbox{overflow:hidden}.frm_image_option_container .frm_image_placeholder_icon svg{height:150px}.frm_list_entry_page .frm_file_link,.frm_list_entry_page .frm_image_option_container.frm_label_with_image{display:block;text-align:center}.frm_list_entry_page .frm_image_option_container img{width:75px;height:75px;object-fit:cover}.frm_list_entry_page img{max-width:100%;height:auto}.frm_image_option_container .frm_empty_url{background-color:var(--sidebar-color)}.frm_list_entry_page .frm_image_option_container .frm_text_label_for_image{display:block;padding:5px 0 10px}.frm_list_entry_page .frm_upload_label,.frm-summary-page-wrapper .frm_text_label_for_image{display:block}#frm-welcome .frm_image_options .frm_image_option_container,#form_global_settings .frm_image_options .frm_image_option_container{background:var(--sidebar-color)}#frm-welcome .frm_image_option_container svg,#form_global_settings .frm_image_option_container svg{max-width:calc(100% - 20px)}#frm-new-template .frm_image_option_container svg{height:50px;margin:10px auto 0}.frm_image_option_container{position:relative}.frm_text_label_for_image>svg{width:30px;position:absolute;top:5px;right:calc(50% - 15px)}.frm_single_option .frm_option_key{margin-top:17px}.frm_single_option .frm_option_key.frm_image_preview_wrapper{margin-top:var(--gap-xs)}.frm_image_data{margin-left:var(--gap-sm);display:flex;flex-direction:column;font-size:var(--text-sm);justify-content:space-around;min-width:0}.frm_image_styling_frame{display:flex;align-items:stretch;margin-left:36px;margin-bottom:var(--gap-xs);width:100%}.frm_image_styling_frame img{height:54px;width:54px;min-width:auto;min-height:auto;border-radius:3px;object-fit:cover;object-position:center}.frm_image_styling_frame .frm_email_attachment_icon img{height:auto;width:auto;max-width:54px}.frm_image_preview_title{color:var(--grey-500);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0;flex:1 1 auto}.frm_wrap .frm_choose_image_box{cursor:pointer;color:var(--primary-500);background-color:#fff;margin-left:32px;text-align:center;width:100%}.frm-type-ranking .frm_option_key .frm_choose_image_box{margin-left:11px !important}.frm_wrap .frm_choose_image_box:hover{background:#fff}a.frm_remove_image_option,.frm_remove_image_option{color:var(--grey-400);cursor:pointer}a.frm_remove_image_option:hover .frmsvg,a.frm_remove_image_option:hover,.frm_remove_image_option:hover{color:rgba(40,47,54,.8)}.frm-form-setting-tabs{margin-top:var(--gap-sm) !important}.frm-right-panel>.postbox{background-color:rgba(0,0,0,0);border:none;box-shadow:none;margin:0}.frm-right-panel .postbox.frm_with_icons .inside,.frm-right-panel .postbox .inside,.frm-right-panel .inside{font-size:var(--text-md);padding:15px 20px 20px;color:var(--grey-700)}.frm-right-panel .misc-pub-section{padding:var(--gap-xs) 0;position:relative}.frm-right-panel .inside a,.frm-form-setting-tabs a{font-size:var(--text-md);color:var(--grey-700);padding:var(--gap-sm);display:block}.frm-form-setting-tabs a{color:var(--grey-900);padding:var(--gap-sm) var(--gap-md)}.frm-right-panel .inside a{padding:0;color:var(--primary-500);display:inline-block}.frm-right-panel .inside a:hover{color:var(--primary-700)}.frm-form-setting-tabs a:hover{background:var(--sidebar-hover);color:var(--grey-900)}.frm-right-panel .inside i,.frm-form-setting-tabs a i,.frm-form-setting-tabs a .frmsvg{margin:0 5px;display:inline-block;width:20px;height:20px;color:var(--grey-500)}.frm-form-setting-tabs a .frmsvg{margin:0}.frm-right-panel .inside a:hover i,.frm-right-panel .inside a:hover .frmsvg,.frm-form-setting-tabs a:hover .frmsvg,.frm-form-setting-tabs a:hover span{color:var(--grey-700)}.frm_settings_form .tabs-panel{padding:0 25px}#form_settings_page .tabs-panel,.frm_settings_form .tabs-panel{max-height:initial !important;min-height:50px !important}#frm_adv_info .tabs-panel{min-height:0 !important;overflow-x:hidden;padding:0;border:none;background:rgba(0,0,0,0)}select.frm_cancelnew,input.frm_enternew{width:175px}.frm_posttax_opt_list{border:1px solid var(--grey-300);padding:var(--gap-md);border-radius:var(--small-radius);margin:5px 0 5px var(--gap-md)}.frm-right-panel .wp-picker-open+.wp-picker-input-wrap{position:absolute;margin-left:calc((100% - 35px)*-1);margin-top:1px;width:calc(100% - 36px)}.frm-right-panel .wp-picker-container input[type=text].wp-color-picker{border:none;padding:5px 8px;font-family:inherit;color:var(--grey-700);font-size:var(--text-md);width:100%;line-height:var(--leading)}.frm-right-panel .wp-picker-input-wrap .wp-picker-clear{display:none !important}.frm-right-panel .wp-picker-holder{position:absolute;z-index:999}.frm-right-panel .wp-picker-input-wrap label{margin-bottom:0}.frm-right-panel .wp-picker-container .wp-color-result.button{width:100%;overflow:hidden;margin:0 !important;height:var(--h-md) !important;padding:0 0 0 var(--gap-lg) !important;border-radius:var(--small-radius);border-color:var(--grey-300)}.frm-right-panel .wp-color-result-text{line-height:var(--leading) !important;font-size:var(--text-md);background:#fff !important;color:var(--grey-900);padding:5px 8px;border-color:var(--grey-300);text-align:left}.frm-right-panel .color-alpha{width:var(--gap-lg) !important}.frm_grid_container .wp-picker-container{width:100%;position:relative}.wp-picker-container button.wp-color-result{border:1px solid var(--grey-300) !important}.wp-picker-container .wp-picker-input-wrap input.hex.wp-color-picker{max-width:100%;position:relative}.frm_end .wp-picker-holder{margin-left:-145px}.frm_end.frm6 .wp-picker-holder{margin-left:-86px}.frm_toggle_opt{padding:0;white-space:normal;display:inline;vertical-align:middle;font-weight:400}.frm_on_label,.frm_off_label{color:var(--grey-700)}.frm_toggle{position:relative;display:inline-block;width:40px;height:var(--h-xs);vertical-align:middle}.frm_toggle_block{display:inline-flex !important;gap:var(--gap-xs);align-items:center}.frm_toggle input,.frm_toggle_block input{display:none !important}.frm_toggle_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--grey-200);transition:.4s;border-radius:30px}.frm_toggle_slider::before{box-sizing:border-box;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m10.063 3.938-6.126 6.124M3.938 3.938l6.124 6.124'/%3E%3C/svg%3E");position:absolute;left:2px;bottom:2px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:20px;line-height:20px;background-color:#fff;border-radius:50%;transition:.4s;box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider{background-color:var(--primary-500)}input:focus+.frm_toggle .frm_toggle_slider{box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider::before{transform:translateX(16px);content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%234199FD' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.52 7.437 1.313 1.459L9.48 5.104'/%3E%3C/svg%3E")}input[disabled]+.frm_toggle_slider,input[disabled]+.frm_toggle .frm_toggle_slider{pointer-events:none;cursor:text;opacity:.5}.frm_toggle_opt~.frm_toggle .frm_toggle_slider::before{content:"" !important}.rtl .frm_toggle_opt{padding:0 8px}.rtl .frm_toggle_slider::before{left:17px}.rtl input:checked+.frm_toggle .frm_toggle_slider::before{transform:none !important;left:1px}.frm_toggle_off,.frm_toggle_on{display:none;color:#fff;z-index:999;position:absolute;font-size:10px;line-height:20px;left:6px}.frm_toggle_off{display:inline;left:auto;right:5px;color:var(--dark-grey)}.frm_toggle_long{width:80% !important;height:28px;display:inline-block !important}.frm_toggle_long .frm_toggle_slider{background:var(--primary-700);box-shadow:0 0 0 2px var(--primary-700)}.frm_toggle_long .frm_toggle_off,.frm_toggle_long .frm_toggle_on{width:50%;text-align:center;font-size:13px;line-height:28px}.frm_toggle_long .frm_toggle_on{left:0}.frm_toggle_long .frm_toggle_off{right:0}.frm_toggle_long .frm_toggle_slider::before{width:50%;left:0;top:0;border-radius:var(--border-radius) 0 0 var(--border-radius);height:100%;background-color:#fff;color:var(--primary-color);content:"" !important}.frm_toggle_long input:checked+.frm_toggle_slider::before{transform:translateX(101%);border-radius:0 var(--border-radius) var(--border-radius) 0}input:checked+.frm_toggle_slider+.frm_toggle_on{display:inline}input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:none}.frm_toggle_long .frm_toggle_on,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:inline;color:var(--primary-500);font-weight:400}.frm_toggle_long .frm_toggle_off,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on{color:#fff;font-weight:700}.tabs-panel{height:auto !important;min-height:260px}.tabs-panel.panel_secondary{min-height:20px;margin-top:10px;margin-left:150px}label.frm-example-icon{margin-right:20px !important;display:inline-block !important}#frm_stripe_icon{border-radius:5px}#captcha_settings .frm_primary_label{margin-top:var(--gap-sm)}.frm-long-icon-buttons{display:flex;gap:var(--gap-md)}.frm-long-icon-buttons>label{border:1px solid var(--grey-300);color:var(--grey-700);border-radius:var(--small-radius);display:flex;padding:var(--gap-sm);gap:var(--gap-sm);justify-content:center;align-items:center;width:calc(33% - var(--gap-sm));box-sizing:border-box}.frm-long-icon-buttons>label:hover{color:var(--primary-500)}.frm-long-icon-buttons input[type=radio]{display:none}.frm-long-icon-buttons input[type=radio]:checked+label{border-color:var(--primary-500);box-shadow:0 0 0 1px var(--primary-color)}.frm-long-icon-buttons label>svg{height:21px}.frm-example-icon .frmsvg,.frm-example-icon i{height:20px;width:20px;font-size:20px;color:var(--grey-700)}.frm_license_msg{margin-top:0}.frm_authorized_box .frm-show-unauthorized,.frm_unauthorized_box .frm-show-authorized{display:none}.edd_frm_status_icon.frmsvg{margin:0 5px}.edd_frm_license_row .frm_action_success .frmsvg{color:green}.edd_frm_license_row .frm_action_error .frmsvg{color:#d54e21}#form_global_settings .tabs-panel .num svg{display:none}.frm_no_items{margin:0 auto 50px;text-align:center;color:var(--grey-700);max-width:500px}.frm-subscribe{margin:var(--gap-lg) 0}.frm_inbox_count{color:#fff;border-radius:50%;display:inline-block;margin-right:8px;font-size:11px;text-align:center;min-width:18px;height:18px;margin-left:2px;vertical-align:text-bottom}#payments_settings .frm_payments_section .form-table td{padding-left:0;padding-right:0}#payments_settings .frm_payments_section .form-table{margin-top:0}#frm_authnet_general_settings>tr:first-of-type>td:first-of-type{padding-top:0}#frm_authnet_general_settings h3{margin-bottom:0}.frm_payment_settings_tab .frmsvg{height:22px}.frm_payment_settings_tab[for=frm_toggle_paypal_settings] .frmsvg{width:83px}.frm_payment_settings_tab[for=frm_toggle_authorize_net_settings] .frmsvg{width:99px}.frm_payment_settings_tab[for=frm_toggle_square_settings] .frmsvg{width:89px}.frm_payment_settings_tab[for=frm_toggle_stripe_settings] .frmsvg{width:53px}.frm-lite .xml_opts .frm-export-xml-items{display:none}.csv_opts #frm_csv_col_sep{width:45px}#frm_advanced td.frm_left_label{width:20%;padding-right:2px}#frm_where_options select{max-width:200px}#frm_where_options select.frm_insert_where_options{width:30%}#frm_where_options select.frm_where_is_options{width:20%}#frm_where_options span.frm_where_val{width:32%;display:inline-block;position:relative}#frm_where_options span.frm_where_val .frm_tooltip_icon,#frm_where_options span.frm_where_val .frm_help{left:-4px;position:absolute}#frm_where_options span.frm_where_val.frm_hidden{display:none}#frm_where_options span.frm_where_val input,#frm_where_options span.frm_where_val select{width:90%;margin-left:10px}#frm_where_options{min-height:31px}.tabs-panel.active .tabs-panel,.frm_settings_form .tabs-panel .tabs-panel{border:none;padding:0}.frm-feature-banner{background:var(--grey-700);color:#fff;border-radius:var(--small-radius);padding:20px;margin:10px 0}.frm-feature-banner p{font-size:var(--text-sm)}.frm-feature-banner .dismiss{margin-top:-10px;margin-right:-10px}.frm-feature-banner .dismiss svg{color:#fff}.frm-feature-banner .frm-big-icon{padding-right:20px;float:left;min-height:60px}.frm-big-icon svg{height:60px;width:60px}.frm-feature-banner p{margin-top:0}.frm_98_width{width:100% !important}h2.frm-h2,.frm_form_settings h2{border-bottom:1px solid var(--grey-300);color:var(--grey-900);font-weight:400 !important;padding:9px 0 5px;margin:0}.frm_settings_form h3,.frm_form_settings h3,.frm_form_settings span.frm_add_logic_link{font-size:var(--text-md);border-top:1px solid var(--grey-300);padding-top:var(--gap-sm);margin:var(--gap-sm) 0;font-weight:400;text-transform:uppercase;color:var(--medium-grey);display:block}.frm_form_settings .howto{color:var(--grey-500);font-size:var(--text-sm);margin-top:8px}.frm_form_settings .advanced_settings .form-table{margin-top:0}.frm_form_settings td.frm_175_width{width:175px}.frm_form_settings #success_url{width:95%}.frm_wrap .ui-autocomplete{padding:3px 0;max-height:310px}.frm_wrap .ui-widget{font-family:inherit}.frm_wrap .ui-autocomplete li{padding:2px 4px;background:none;color:var(--grey-700);border:none;font-weight:400}.frm_wrap .ui-autocomplete .ui-menu-item-wrapper.ui-state-active{border:none;font-weight:inherit}.frm_select_with_label{margin:7px 0 0}#frm-insert-fields-box,#frm-conditionals{max-height:none}#frm-conditionals,#frm-adv-info-tab{display:none;max-height:355px}#frm-insert-fields-box ul.subsubsub,#frm-conditionals ul.subsubsub{float:right;margin:0}#frm-insert-fields-box ul.alignleft,#frm-conditionals ul.alignleft{margin:4px 0 0}#frm_adv_info ul.frm_code_list.frm-full-hover{clear:both;max-height:215px;overflow:auto}#frm-insert-fields-box ul.frm_code_list li.clear.frm_block{height:10px}#frm_adv_info .frm_noallow{display:none}#frm_adv_info #frm-conditionals .frm_noallow{display:block}#frm_html_tab.frm_hidden{display:none}#frm_html_tab.active{display:inline}.frm_email_reply_container select,.frm_email_reply_container input,.form-table td.frm_150_width{width:170px}#frm_notification_settings .frm_no_top_padding{padding-top:0}.frm_email_settings.frm_email_settings.widgets-holder-wrap{overflow:auto;box-shadow:none}#frm_notification_settings .widget-top .widget-action,#frm_form_editor_container .widget-top .widget-action{border:0;margin:0;padding:8px;background:0 0;cursor:pointer;outline:0}#frm_notification_settings .widget-top .widget-action{padding-top:13.5px}#frm_email_addon_menu{border:1px solid var(--grey-300);padding:var(--gap-sm);border-radius:4px;margin:var(--gap-md) 0 var(--gap-sm)}#frm_email_addon_menu .frm-search{float:right;margin:0}#frm_email_addon_menu h3.frm-no-border{clear:none;padding-top:7px}.frm_email_settings .widget .widget-top{background-color:var(--sidebar-color)}.frm_email_settings .widget .widget-top,.frm_email_settings .widget .widget-top h3{cursor:pointer !important}.frm_email_settings .widget{margin-bottom:var(--gap-sm)}.frm_form_action_settings .widget-top{box-shadow:none;border-color:var(--grey-300);border-radius:var(--small-radius);background:var(--lightest-grey);color:var(--grey-700)}.frm_form_action_settings:hover .widget-top{border-color:var(--grey)}.frm_form_action_settings.open .widget-top{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}.frm_form_action_settings.open:hover .widget-top{border-color:var(--grey-300)}.frm_form_action_settings>.widget-inside{display:none}.frm_form_action_settings.open>.widget-inside{display:block}.frm_form_action_settings .widget-inside{min-height:25px;padding:15px;border-color:var(--grey-300);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.frm_form_action_settings .widget-title h4,.frm_form_action_settings .widget-title h3{display:inline-block;border-bottom:none;padding:10px 10px 5px;font-size:var(--text-md);font-weight:500}#frm_email_addon_menu h3{margin:0 0 var(--gap-sm);clear:both}.frm_single_api_settings p>label{display:inline}.frm_form_action_icon{margin-right:5px}.frm_actions_list{margin:0;display:inline}.frm_actions_list li{float:left;width:15.6%;margin:10px .5% 15px;height:100px;text-align:center}.frm-limited-actions .frm-group-heading,.frm-limited-actions #frm-hide-groups,.frm-all-actions #frm-show-groups,.frm-limited-actions .frm-not-installed:not(.frm-search-result):not(.frm-default-show){display:none}label.frm_action_events{padding-left:15px}#frm-hide-groups,#frm-show-groups{font-size:var(--text-md);float:right}.frm_actions_list a:active,.frm_actions_list a:focus{outline:none}.frm_actions_list a{font-size:var(--text-sm);color:var(--grey-700);word-break:break-word}.frm_actions_list span.frm-outer-circle{background-color:var(--grey-100);padding:10px;text-align:center;border-radius:50%;display:block;width:30px;height:30px;margin:0 auto 15px;line-height:1}.frm_email_settings .widget-title h4{color:var(--grey-700)}.frm_disabled_action .widget-title h4{color:var(--grey)}.frm_actions_list a .frmsvg,.frm_actions_list a i{height:18px;width:18px;font-size:18px;padding:2px;color:var(--lightest-grey)}span.frm-inner-circle,.frm_email_settings .widget-title .frm_form_action_icon{background-color:var(--grey-400);border-radius:50%;display:inline-block;text-align:center;line-height:1}span.frm-inner-circle{background-color:var(--primary-700);height:22px;width:22px;padding:4px;color:#fff}.frm-inner-circle svg{fill:currentColor}.frm_email_settings .widget-title .frm_form_action_icon{height:15px;width:15px;padding:5px;color:#fff;vertical-align:middle}.frm_actions_list .frmsvg,.frm_actions_list i::before,.frm_email_settings .widget-title .frm_form_action_icon i,.frm_email_settings .widget-title .frm_form_action_icon .frmsvg{height:15px;width:15px;vertical-align:text-top}.frm_actions_list i::before{vertical-align:middle}.frm_email_settings .widget-title:hover .frm_form_action_icon{background-color:var(--grey)}span.frm-inner-circle.frm-inverse{background-color:rgba(0,0,0,0);color:var(--primary-700);padding:0;height:30px;width:100%}.frm_actions_list span.frm-inverse i,.frm_actions_list span.frm-inverse .frmsvg{color:var(--primary-700);height:30px;width:30px;font-size:30px;padding:0}.frm_actions_list i.frm-inverse::before{height:30px;width:100%;font-size:30px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse{background:#fff;padding:0;height:24px;width:24px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse i::before{color:var(--grey-400);height:24px;width:24px;font-size:24px}.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse i::before{color:var(--grey-500)}.frm_email_icons{padding:10px 0 5px 6px;font-size:20px}.frm_email_icons a{margin-left:8px;color:var(--grey);opacity:0;transition:all .2s ease}.frm_email_icons a .frmsvg{color:var(--grey)}.frm_email_icons a:hover,.widget-top:hover .frm_email_icons a{opacity:1}.frm_actions_list a.frm_inactive_action{color:var(--grey)}.frm_inactive_action .frm-inner-circle,.frm_actions_list .frm_inactive_action i{opacity:.4}table td,.form-table tr td{vertical-align:top}#new_fields .form-table tr td{display:block;padding:7px 0 0}#new_fields .form-table tr td:first-child{margin:0}#new_fields .form-table tr td:last-child{margin-bottom:9px}.form-table #list-table th{text-align:center}#form_settings_page th,#form_settings_page td,.frm_settings_form td,#frm_notification_settings .frm_form_action_settings td p{padding:7px 0}#permissions_settings_settings .frm_grid_container{align-items:center}#frm_notification_settings .form-table>tbody>tr>th{width:150px;font-weight:400;padding-right:10px}#frm_notification_settings .frm_single_email_settings .form-table>tbody>tr>th{width:80px}#frm_notification_settings table tr td:first-child{padding-left:0}#frm_notification_settings table tr td:last-child{padding-right:0}#frm_notification_settings .frm_left_label{float:none;width:auto !important}.frm-fields .frm_autoresponder_rows select{width:auto}#frm_notification_settings .frm_with_left_label,#frm_notification_settings .frm_left_label+textarea,#frm_notification_settings .frm_left_label+select,#frm_notification_settings .frm_left_label+input[type=text]{width:100%}#frm_notification_settings .frm_email_buttons{padding:var(--gap-2xs);background:var(--light-blue);color:var(--primary-700);border-radius:var(--small-radius);border-color:var(--blue-border);line-height:1;height:auto;min-height:12px;font-size:var(--text-xs);box-shadow:none}p.frm_bcc_cc_container,p.frm_reply_to_container{float:right;z-index:1;position:relative}p.frm_bcc_cc_container{margin:14px 0 0}p.frm_reply_to_container{margin:-4px 0 0}.frm_email_row .frm_cancel1_icon::before{vertical-align:bottom}.frm_cc_row.frm_email_row .frm-with-right-icon,.frm_bcc_row.frm_email_row .frm-with-right-icon,.frm_reply_to_row.frm_email_row .frm-with-right-icon{width:calc(100% - 20px);display:inline-block}.frm_email_row .frm_remove_field .frm_close_icon{position:relative;fill:var(--grey-500);vertical-align:middle}.frm-inline-select,p.frm-inline-select,.frm_logic_rows .frm-collapse-me{line-height:var(--h-md) !important}.frm_logic_row{padding:var(--gap-xs) 0 0}.frm-single-settings ul.frm_sortable_field_opts{border-bottom:1px solid var(--grey-200);padding-bottom:var(--gap-xs);margin-bottom:var(--gap-xs)}.frm-single-settings .frm-add-other svg.frm_add_tag{position:relative;top:5px;margin-right:4px}.frm-single-settings .frm_single_option .frm_remove_tag::before{content:""}.frm-single-settings input[type=checkbox][readonly]{opacity:.5;pointer-events:none}.advanced_settings .frm_logic_row{margin:14px 0}.advanced_settings .frm_logic_row select,.advanced_settings .frm_logic_row input{max-width:30% !important}.frm_form_action_settings .frm_logic_row p{margin-top:0;margin-bottom:0;padding:0}#poststuff .widgets-holder-wrap .frm_form_action_settings .widget-inside{padding-bottom:0}#poststuff .frm_form_settings .widgets-holder-wrap .widget-inside{padding-left:15px;padding-right:15px}#form_global_settings h3{font-size:var(--text-sm);margin-top:25px}#form_global_settings .tabs-panel+h3{margin-top:0;border:none}#poststuff .frm_form_settings .widget-inside h3,#poststuff .frm_form_settings .advanced_settings h3,#poststuff .frm_settings_form h3,#frm_advanced .inside h3{border-top:1px solid #eee;border-bottom:none;margin:15px -15px 0;padding:8px 15px;font-size:var(--text-sm)}#poststuff .frm_form_settings h3.frm_first_h3,#poststuff h3.frm_first_h3{border:none;margin-top:0}h3.frm_add_logic_link{margin-bottom:0 !important}a.frm_add_logic_link.frm_hidden{display:none}a.frm_add_logic_link.frm_hidden+.frm_logic_rows{height:auto}.frm_icon_font{color:#a0a0a0;color:var(--grey)}.frm-fields label .frm_icon_font{font-size:inherit}.misc-pub-revisions.frm_icon_font,.misc-pub-revisions.frm_icon_font:hover{color:inherit}.postbox.frm_with_icons .inside{padding:0;margin:0}.frm_add_tag::before{content:"\e602"}.frm_remove_tag::before{content:"\e600"}.frm_logic_row .frm1>.frm_remove_tag{padding:0}.frm_tooltip_icon::before{font-size:13px;vertical-align:top}.frm_help svg,.frm_help .frmsvg{height:13px;width:13px;vertical-align:top;color:var(--grey-400)}.form-field input[type=text].frm_other_input{width:30%;margin-left:10px}.frm-add-other{text-align:right}.frm-add-other .frm_add_tag{vertical-align:20%}.frm_action_icon{margin:5px 0 0 5px}span.frm_action_icon{margin:0 4px 0 0}.frm_action_icon:active{outline:none}a.frm_action_icon:hover{text-decoration:none}.frm_action_icon.frm_error_icon::before{content:"\e608"}.frm_inactive_icon.frm_action_icon.frm_error_icon::before{content:"\e606"}.frm-field-action-icons{text-align:right;position:absolute;top:2px;right:2px;max-width:100%}.frm-field-action-icons .frm-field-id{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:80px;max-width:calc(100% - 50px);position:relative;top:2px}.frm-field-action-icons>a{font-size:var(--text-md);width:17px}.frm-field-action-icons a:hover{text-decoration:none}.frm-field-action-icons .dropdown{display:inline-block}.frm-field-action-icons>a .frmsvg{color:var(--grey-500) !important;font-size:17px;width:17px;height:17px}.frm-field-action-icons>a .frmsvg,.frm-field-action-icons>div>a .frmsvg{vertical-align:baseline}.edit_field_type_end_divider .frm-field-action-icons{display:none !important}.frm-move{cursor:grab}span.howto{display:inline}.frm_import_message{margin:15px 0;line-height:2.5}.frm_sorting .form-field .widget input[type=text],.frm_sorting .form-field .widget input[type=number],.frm_sorting .form-field .widget select,#wpcontent .frm_sorting .form-field .widget select,.frm_sorting .form-field .widget textarea{width:auto}.tagchecklist span.no_taglist{display:inline;float:none;line-height:15px;margin-right:0;font-size:inherit}.tagchecklist .frm_exclude_cat_list span{display:inline}.tagchecklist span a::before{line-height:23px;text-align:start}.frm_form_action_settings .frm_email_row .frm_tooltip_icon{position:relative;bottom:2px}.frm_no_entries_form{padding:60px 0}.frm_no_entries_form .frm_no_entries_header{font-size:20px;margin-bottom:10px}.frm_no_entries_form .frm_no_entries_text{line-height:var(--leading)}#form_entries_page #the-list .no-items{height:240px}#form_reports_page img.frm_no_reports{max-width:100%}.frm_wrap .google-visualization-table .gradient,.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-odd,.frm_wrap .google-visualization-table-tr-odd.google-visualization-table-tr-over{background:var(--lightest-grey)}.frm_wrap .google-visualization-table-tr-over{background:#fff}.frm_wrap .google-visualization-table-table th,.frm_wrap .google-visualization-table-table td{border-right-width:0;padding:10px !important}.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-head th{white-space:pre-wrap;font-size:var(--text-md);font-weight:400 !important;text-align:left}.frm_wrap .google-visualization-table-td-number{text-align:inherit}#form_reports_page .postbox{text-align:center;float:none;display:inline-block;margin-right:2%;width:20%;min-width:175px}#form_views_page img.frm_no_views{max-width:100%}.frm_field_opts_popup{min-width:300px;background-color:#fff}.frm_field_opts_popup #wpadminbar{display:none}.frm_prepop{width:100%;list-style:none;overflow:auto;margin:0;max-height:295px}.frm_prepop li{margin:0}.frm_prepop li a{display:block;text-decoration:none;cursor:pointer;padding:5px 20px}.frm_prepop li a:hover{background:var(--sidebar-color)}#frm_form_editor_container #frm_form_key_box{width:13em;max-width:30%}#frm_form_editor_container #frm_form_desc{width:70%}#frm_form_editor_container .ui-widget-content{display:none;padding:15px}#frm_form_editor_container .ui-widget-content label{float:left;width:170px;text-align:right;padding-right:5px;clear:both}#frm_form_editor_container .ui-widget-content label.nofloat{clear:none;float:none;margin-left:10px}#frm_form_editor_container .ui-state-default{color:#333 !important}.frm_green{color:var(--green) !important}#frm_form_editor_container .ui-state-default a.frm_orange,.frm-right-panel a.frm_orange,#postbox-container-1 a.frm_orange{color:#d54e21}#styling_settings input[type=checkbox],#styling_settings input[type=radio]{border:solid 1px #bbb}#styling_settings .widget .widget-top,#frm_form_editor_container .widget .widget-top{cursor:pointer}.frm_sorting .widget,.frm_settings_page .widget{background:#fff}.frm_sorting .widget-title h4{font-weight:400}.frm_sorting .widget,#postbox-container-1 .widget,.frm-right-panel .widget,.frm_settings_page .widget{margin-bottom:0}.frm_settings_page .widget-inside{padding:0 5px 5px}.frm_sorting .widget,.widget-inside,.frm_sorting .form-field .widget{display:none}#frm-show-fields{min-height:350px;padding:0 0 35px;margin:0;position:relative}.frm-has-fields #frm-show-fields{min-height:50px}#frm_builder_page .frm-lite-credit-card-element,body.frm-admin-page-styles .frm-lite-credit-card-element{position:relative}#frm_builder_page .frm-lite-credit-card-element>div,body.frm-admin-page-styles .frm-lite-credit-card-element>div{position:absolute;top:calc(50% - 1px);transform:translateY(-50%);right:10px;color:#d0d4dd}#frm_builder_page #frm_field_group_controls{position:absolute;padding:5px;border-radius:4px 4px 0 0;text-align:right;box-sizing:border-box;right:0;top:-28px;height:28px;z-index:3}.frm-field-group-hover-target,.frm-has-open-field-group-popup,#frm_builder_page #frm_field_group_controls,.frm-selected-field-group{background:rgba(65,153,253,.04)}.frm-selected-field-group{position:relative}#frm_builder_page #frm_field_group_controls>span:first-child{margin-right:5px}#frm_builder_page #frm_field_group_controls svg{pointer-events:none}#frm_field_group_controls{visibility:hidden}.frm-field-group-hover-target #frm_field_group_controls{visibility:visible}#frm_field_group_controls .dropdown-item a span{color:var(--grey-700)}#frm_field_group_controls .dropdown-item a:hover{text-decoration:none}.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider{display:none !important}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default,.frm_sorting>li.ui-state-default,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{border:1px solid rgba(0,0,0,0);font-weight:400 !important;background-color:rgba(0,0,0,0);background-image:none;padding:5px;margin:0;box-shadow:none;display:block;text-align:inherit !important;overflow:visible;position:relative}#frm-show-fields li.frm_cancel_sort{display:none}.divider_drop{text-align:center}.divider_drop .howto .frm_icon_font{font-style:normal}.show_repeat_sec{display:none}.repeat_section .show_repeat_sec{display:inline-block;margin:5px 0 0}.repeat_section tr.show_repeat_sec{display:table-row}.repeat_format .frm_repeat_label,.repeat_formattext .frmsvg,.repeat_formattext i{display:none}.frm_button{text-decoration:none;border:1px solid #eee;padding:5px;color:#444;vertical-align:middle;box-shadow:none !important}a.frm_button:hover{text-decoration:none !important}.frm_button,.frm_button .frm_icon_font::before{font-size:13px;vertical-align:middle}.frm_button .frmsvg{width:13px;height:13px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{padding:0;margin:0}ul.start_divider{padding:8px 13px 0 8px;min-height:115px;transition:all .4s linear}.frm-section-collapsed .frm_no_section_fields,.frm-section-collapsed ul.start_divider{height:0;min-height:0 !important}.frm-section-collapsed ul.start_divider{overflow:hidden}.frm-section-collapsed .frm_no_section_fields{overflow:hidden;padding:0;opacity:0}.frm-section-collapsed .divider_section_only .frm-collapsed-label{display:inline}.frm-page-collapsed .frm_clone_icon,.frm-page-collapsed .frm_delete_field,.frm-page-collapsed .frm_clone_field,.frm-section-collapsed .frm_clone_icon{opacity:.5;cursor:not-allowed}.edit_field_type_summary .frm_more_options_li:nth-child(2){display:none !important}.edit_field_type_submit .frm_more_options_li:not(:last-child){display:none !important}.frm_no_section_fields:not(.frm_block)+ul.start_divider{padding:0;min-height:132px}.frm_sorting li.ui-state-default .divider_section_only{padding:6px;margin-top:-10px;border:2px solid rgba(0,0,0,0);border-radius:var(--small-radius);z-index:2;position:relative}.divider_section_only>.frm_inner_field_container{padding:5px 0;margin:0}.frm-collapsed-label,.divider_section_only>.frm_inner_field_container .frm_form_fields{display:none}.frm-section-collapsed .divider_section_only::after,.divider_section_only::before{content:"";display:block;padding:2px 0;line-height:1px;border-top:2px solid var(--grey-300);top:-2px;position:absolute;width:100%;transition:.5s border-color ease-in-out}.frm-section-collapsed .divider_section_only::after{top:auto;bottom:-6px}.frm-section-collapsed .divider_section_only:hover::after,li.selected.frm-section-collapsed .divider_section_only::before,li.selected.frm-section-collapsed .divider_section_only::after,.divider_section_only:hover::before,li.selected .divider_section_only::before{border-color:rgba(0,0,0,0)}.frm_sorting li.ui-state-default.edit_field_type_divider{overflow:visible;position:relative;padding:0 0 0 20px;margin:25px 0 0 -5px;border-left:1px solid var(--primary-700);transition:border .7s ease-out}.frm-section-collapsed{border-left-color:rgba(0,0,0,0) !important}.frm_sorting li.edit_field_type_end_divider,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{margin:0 0 var(--gap-sm)}.frm-first-page .frm_prev_page{display:none}#frm_builder_page .frm_remove_form_row.frm_button,#frm_builder_page .frm_add_form_row.frm_button{border-radius:var(--small-radius);border:1px solid var(--blue-border)}#frm_builder_page .frm_remove_form_row .frmsvg,#frm_builder_page .frm_remove_form_row i::before,#frm_builder_page .frm_add_form_row .frmsvg,#frm_builder_page .frm_add_form_row i::before{color:var(--primary-700)}.frm-preview-buttons .frm_button_submit{margin:0 5px}.frm-page-break{border-top:1px dashed var(--primary-700);margin-top:var(--gap-lg);position:relative}.frm-page-break::before,.frm-page-break::after{content:"";position:absolute;background-color:#fff;border-radius:50%;border:1px solid var(--primary-700);text-rendering:auto;-webkit-font-smoothing:antialiased}.edit_field_type_divider .frm-divider-icon.frmsvg{padding:2px;position:absolute;left:-12px;color:#fff;background-color:var(--primary-700);border-radius:50%}.edit_field_type_divider .start_divider .frm-divider-icon.frmsvg{height:8px;width:8px;padding:0;bottom:-4px;left:-24.5px;color:var(--primary-700);background-color:#fff}.edit_field_type_divider.selected .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .frm-divider-icon.frmsvg{background:var(--primary-500)}.edit_field_type_divider.selected .start_divider .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .start_divider .frm-divider-icon.frmsvg{background-color:#fff;color:var(--primary-500)}.frm-page-break::before,.frm-page-break::after{width:8px;height:8px;top:-6px;border-color:var(--grey)}.frm-page-break::after{right:0}#frm-fake-page .frm-page-break{border-color:var(--grey)}#frm-fake-page{padding:0 5px}.frm_sorting li.edit_field_type_divider:hover,.frm_sorting li.edit_field_type_divider.selected{border-left-color:var(--primary-500)}.frm-section-collapsed::after{border-color:rgba(0,0,0,0) !important;color:rgba(0,0,0,0)}.frm-page-break .frm-collapse-page.button{margin-left:46%;margin-top:-16px;padding:6px 12px !important}#frm-fake-page.frm-page-collapsed{margin-bottom:0}.frm-page-collapsed{position:relative;overflow:visible !important;margin-bottom:var(--gap-lg)}.frm-collapse-page .frmsvg,.frm-collapse-page .frm_arrowdown6_icon{width:var(--text-sm);height:var(--text-sm);font-size:var(--text-sm);text-align:center;margin-left:2px;color:currentColor;transition:transform 300ms ease-in-out}.frm-page-collapsed .frm-collapse-page .frmsvg{transform:rotate(180deg)}#frm-fake-page .frm_arrowdown6_icon{color:currentColor}.frm-collapsed i::before,.frm-page-collapsed .frm_arrowdown6_icon::before{content:"\e913"}.frm-collapse-section svg{fill:var(--primary-color);transition:transform .2s ease-out,fill .2s ease-out}.frm-collapse-section:hover svg{fill:var(--primary-700)}.frm-section-collapsed .frm-collapse-section svg{transform:rotate(-90deg)}.open .widget-top .widget-title-action button .frmsvg{transform:rotate(90deg)}.widget-top .widget-title-action button .frmsvg use{color:var(--grey)}.frm-collapsed+.frm-collapse-me{overflow:hidden !important}.frm-collapse-me{padding-bottom:10px}.frm-collapse-me.frm_grid_container:has(.dropdown-toggle.multiselect){position:relative;z-index:1}.frm-collapsed+div{height:0;padding:0}.frm-collapsed+div.frm-collapse-me{display:none}.frm-collapsible{display:flex;justify-content:space-between;align-items:center;font-weight:700;padding:var(--gap-xs) 0;margin:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.frm-collapsible.frm-collapsed{font-weight:400}.frm-collapsible:not(.frm-collapsed) .frmsvg{transform:rotate(-180deg)}h4.frm-collapsible{font-size:var(--text-md)}.frm-collapsible+.frm-collapse-me{padding-bottom:0}.frm-collapsible:focus-visible{outline:1px solid var(--primary-500)}.frm_sorting .divider_section_only>.frm_ipe_field_label{font-size:116%}#frm_form_editor_container .edit_field_type_break .frm_primary_label.frm_ipe_field_label.button{width:150px;text-align:center;margin-bottom:3px;display:block}tr.frm_options_heading td{padding-bottom:0}.frm_sorting .widget-inside .form-table td p,.frm_sorting .widget-inside .form-wrap label{padding:10px 0}.frm_no_fields,.frm_no_section_fields{text-align:center;position:absolute;color:var(--medium-grey);font-size:var(--text-md);box-sizing:border-box;border:1px dashed var(--grey-300);outline:2px solid rgba(0,0,0,0)}.frm-over-droppable+.frm_no_fields{border-style:solid;border-color:var(--primary-500);outline-color:var(--primary-500)}.frm_no_section_fields{display:none;margin:0;padding:20px 0 0;width:calc(100% - 20px);height:121px;transition:all .4s linear}.frm-empty-fields .frm_updated_message~.frm_no_fields{top:60px}#frm_form_editor_container:not(.frm-has-fields) #frm-show-fields>.frm_field_box:last-child{visibility:hidden}.frm-has-fields .frm_no_fields{display:none}#frm_form_editor_container:not(.frm-has-fields) #frm_drag_placeholder{display:none}#frm-form-button{display:none;margin:0 7px 25px}.frm-has-fields #frm-form-button{display:block}.frm-large-plus.frmsvg{color:var(--primary-700);height:45px;width:45px}.frm_no_section_fields p{color:var(--grey);font-size:15px}.frm_no_fields{top:0;width:calc(100% - 24px);min-height:320px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-md);padding:var(--gap-md);border:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Crect width='99%25' height='99%25' fill='none' stroke='%23D0D5DD' stroke-width='1' stroke-dasharray='8,8' rx='8' ry='8' x='0.5%25' y='0.5%25' stroke-linecap='square' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");border-radius:var(--medium-radius);margin:var(--gap-sm) 12px}.frm_no_fields img{margin-left:calc(-1*var(--gap-lg))}.frm_no_fields .frm_drag_inst{font-size:20px;font-weight:600;margin:0 0 12px}.frm_no_fields p{color:var(--grey-600);font-size:var(--text-md);margin:0}.frm_product_price_wrapper{display:inline-block;vertical-align:middle}.frm_prod_type_single .frm_product_price_wrapper{width:100%}#new_fields .frm_product_price_wrapper input:first-child{width:60% !important;float:left}#new_fields .frm_product_price_wrapper input:nth-child(2){width:37% !important;float:right}li.frm_single_option{padding-bottom:var(--gap-sm);border-bottom:0}.frm_prod_type_single input[type=radio],.frm_prod_type_single .frm_drag_icon,.frm_prod_type_single .frm_sortable_field_opts li:nth-child(n+3),.frm_prod_type_single .frm_sortable_field_opts .frm_remove_tag,.frm_prod_type_single .frm_form_field:not(.frm_product_type):not(.frm_sep_val_product),.frm_prod_type_single .frm-bulk-edit-link,.frm_prod_type_user_def.frm_grid_container,.frm_prod_options_heading.frm_prod_user_def{display:none}.frm_prod_type_single .frm-ai-generate-options-modal-trigger{display:none !important}.frm_prod_type_single .frm_option_key{margin-left:0 !important}.frm_prod_type_single .frm_option_key input[type=checkbox]+input[type=text],.frm_prod_type_single .frm_option_key input[type=radio]+input[type=text]{margin-left:0 !important}.plugin-card-bottom .frm-trash{color:#a00}.frm-fields p>.frm_inline_label,.frm_inline_label{padding-left:3px;margin-right:12px;display:inline-block}.frm_left_label{clear:both;float:left;width:32% !important;margin-right:2% !important;line-height:2em}table td.frm_left_label{float:none;line-height:inherit;padding:5px 0 5px 2%}.frm_left_label.frm_alignright{padding-right:10px;text-align:right}.frm-fields .frm_left_label+textarea,.frm-fields .frm_left_label+select,.frm-fields .frm_left_label+input[type=text],.frm_with_left_label{width:66%}td.frm_left_label+td{width:66%;padding-top:0}#html_settings label{display:block}#html_settings .frm_field_html_box{width:100%}.frm-has-required .frm-required{color:var(--error-500)}ul.frm-category-tabs{margin-top:2px}.frm-category-tabs>li a,.frm-category-tabs>li a:active{outline:none;box-shadow:none;display:flex;gap:var(--gap-xs);align-items:center}.frm-category-tabs>li.active .frmsvg,.frm-category-tabs>li.active i,.frm-category-tabs>li.active span,.frm-category-tabs>li.active a{color:var(--primary-500)}.frm_wrap .manage-menus{margin-top:0;border:none;border-bottom:1px solid var(--grey-300);background:var(--lightest-grey)}.general_settings .postbox .manage-menus{border-top:none;border-left:none;border-right:none}.frm-postbox-no-h3{padding-top:10px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{color:var(--grey-900)}.no_repeat_section .frm_sorting>li.ui-state-default.edit_field_type_end_divider:hover{box-shadow:none}.frm-selected-field-group li.ui-state-default,.start_divider.frm_sorting li.ui-state-default.frm_not_divider.selected,.start_divider.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.ui-sortable-helper,.frm_sorting li.ui-state-default.edit_field_type_divider .divider_section_only:hover,.frm_sorting .repeat_section li.ui-state-default.edit_field_type_end_divider:hover,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only,.frm_update_msg,.frm_sorting li.ui-state-default.frm_not_divider.selected,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only{border-color:var(--primary-500);transition:.5s border-color ease-in-out}.frm_sorting li.ui-state-default.frm_not_divider.selected{box-shadow:0 0 1px 0 var(--primary-500)}.frm_sorting li.ui-state-default{transition:.7s box-shadow ease-in-out,.7s height linear}.frm_sorting li.ui-state-default.frm-newly-added{box-shadow:inset 0 0 2px 1px var(--blue-border)}.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{visibility:visible !important;display:inline !important}.edit_field_type_end_divider>label{display:none !important}.frm_email_actions.feature-filter{font-weight:700;border:1px solid #dfdfdf;background-color:#eee;padding:3px 5px 2px;font-size:var(--text-md);line-height:20px}.frm_update_msg{border-style:solid;margin:10px 0;color:#21759b;padding:8px 15px;border-radius:4px}.frm_update_msg.wrap{margin:10px 20px 0 2px}#frm-insert-fields-box .frm_update_msg{margin-right:.9em}.frm_update_msg a{font-weight:700}.widefat td{width:auto}.widefat .column-id{width:3.7em}.widefat .column-show_count{width:5em}.widefat .column-shortcode{width:9em}.toplevel_page_formidable .column-shortcode div{display:flex;gap:var(--gap-xs)}.widefat .column-entries,.widefat .column-link{width:10%;text-align:center}.widefat .column-form_key,.widefat .column-created_at{width:10%}.frm-white-body .search-box,.frm_wrap .frm-search{float:right;margin:0;clear:right}.frm-white-body .search-box,.frm-search{min-width:32%;position:relative;display:flex;gap:var(--gap-sm);align-items:center}.frm-inline-modal .frm-search,#frm_adv_info .frm-search{float:none;width:100%;clear:both;margin:var(--gap-xs) 0}.frm-button-group a{margin:0 7px !important}.frm_has_textarea .frm-with-right-icon{display:block}.frm-with-left-icon,.frm-with-right-icon{position:relative}i.frm-show-box,i.frm-show-inline-modal,.frm-with-left-icon i,.frm-with-right-icon i:not([class*=mce-]),.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,.frm-with-left-icon .frmsvg,.frm-with-right-icon .frmsvg,.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){position:absolute;padding:0 14px;pointer-events:none;left:0;color:var(--grey-400);font-size:var(--text-xs)}.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){padding-left:var(--gap-xs);padding-right:var(--gap-xs)}.frm-search>.frmsvg{box-sizing:unset}.frm-with-right-icon .frmsvg,.frm-with-right-icon i:not([class*=mce-]){right:0;top:-3px;left:auto;padding:0 10px 0 5px}.frm_form_settings .frm-with-right-icon .frmsvg{top:0}.frm_form_settings .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .wp-editor-container .frm-with-right-icon .frmsvg{top:auto;bottom:var(--gap-sm)}.frm_form_settings .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg{bottom:var(--gap-lg)}.frm_form_settings .frm_has_textarea .frm-with-right-icon .frmsvg{top:auto;bottom:6px}.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,i.frm-show-box,i.frm-show-inline-modal{top:auto;background-color:var(--primary-50);color:var(--primary-500);border-radius:6px;padding:var(--gap-2xs);margin:5px;margin-bottom:0;z-index:1;cursor:pointer;pointer-events:initial}.frmsvg.frm-show-box:focus,.frmsvg.frm-show-inline-modal:focus,i.frm-show-box:focus,i.frm-show-inline-modal:focus{outline:1px solid var(--primary-500)}.frm-open+.frm-inline-modal{top:-10px;margin-bottom:0}.frm-open+.frm-inline-modal.frm-modal-no-dismiss .inside>.frm-search:first-child{margin-top:var(--gap-sm)}.frm_grid_container>.frm-open+.frm-inline-modal{top:-4px}.frm_grid_container>.frm-open+.frm-inline-modal.frm-modal-no-dismiss{top:0 !important}.frm-with-left-icon input{padding-left:37px !important}.frm_wrap .frm-with-right-icon textarea,.frm_wrap .frm-with-right-icon input,.frm_wrap .frm-with-right-icon input[type=text]{padding-right:var(--gap-md)}#frm-show-fields .frm-with-left-icon .frmsvg,#frm-show-fields .frm-with-left-icon i{padding-top:10px}.frm-search input[name=s],.frm-search .dropdown-toggle,.frm-search input.frm-search-input{color:var(--grey-800);border-color:var(--grey-300);border-radius:var(--small-radius);box-shadow:var(--box-shadow-xs)}.frm-search input[type=search],.frm-search input[type=text]{padding-left:var(--gap-lg) !important}.frm-search .dropdown-toggle{width:100%;float:none;max-width:200px;background:rgba(0,0,0,0);padding:7px;padding-left:33px !important;min-height:32px;text-align:inherit;overflow:hidden;text-overflow:ellipsis}.frm-search #search-submit a{color:var(--grey-800)}.frm-search #search-submit .caret{opacity:.7}.frm-white-body .search-box input[name=s],#wpwrap .frm-search input[type=search]{flex:1;font-size:var(--text-md);line-height:var(--text-xl);padding:var(--gap-xs)}span.multiselect-selected-text{white-space:nowrap;display:inline-block;max-width:calc(90% - var(--gap-xs));text-overflow:ellipsis;overflow:hidden}.frm-not-set input{color:var(--primary-500) !important;font-size:13px}.frm-not-set .frmsvg,.frm-not-set i{color:var(--primary-700);opacity:1}.post-type-frm_display select[name=m]+#post-query-submit,select[name=m]{display:none}.frm_shortcode_select optgroup option{margin-left:1em}.frm_shortcode_select optgroup{padding-top:5px}.frm_shortcode_select .frm_subopt{margin-left:2em}.misc-pub-section a.edit-frm_shortcode,.misc-pub-section a.edit-form-status{float:none;font-size:13px}.frm-grid{border-collapse:collapse;border:none;margin-right:10px}.frm-grid td,.frm-grid th{padding:5px;border:1px solid #000}.post-type-frm_display #poststuff #post-body.columns-2{margin-right:var(--big-sidebar)}.post-type-frm_display #post-body.columns-2 #postbox-container-1{margin-right:calc(var(--big-sidebar)*-1);width:calc(var(--big-sidebar) - 40px)}.post-type-frm_display #poststuff #post-body.columns-2 #side-sortables{width:100%}#frm_dyncontent .hndle,#frm_dyncontent .handlediv{display:none !important}.post-type-frm_display .meta-box-sortables .frm_form_nav>li>a,.post-type-frm_display .frm_form_nav .nav-tab-active{padding:0 2px 5px;line-height:1.4}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle{border-bottom:1px solid var(--grey-300);margin:10px 0 0 !important;padding:0 25px 8px}.post-type-frm_display #side-sortables h2.hndle{margin-top:0 !important;padding-top:10px}.post-type-frm_display #post-body-content{margin-top:var(--gap-lg)}.post-type-frm_display.edit-php #wpbody-content>.wrap{margin:0}.post-type-frm_display .postbox .hndle,.post-type-frm_display .postbox{border-color:var(--grey-300)}.post-type-frm_display #postbox-container-1 .postbox,.post-type-frm_display #postbox-container-2 .postbox{border-radius:var(--small-radius);border-color:var(--grey-300);box-shadow:none}.post-type-frm_display #side-sortables .postbox{border-radius:0;border-top-width:0;margin-bottom:0}.post-type-frm_display #side-sortables .misc-pub-section{padding:15px 20px 10px}.post-type-frm_display .misc-pub-section .frmsvg,.post-type-frm_display #post-body .misc-pub-post-status::before,.post-type-frm_display #post-body #visibility::before,.post-type-frm_display .curtime #timestamp::before,.post-type-frm_display #post-body .misc-pub-revisions::before,.post-type-frm_display span.wp-media-buttons-icon::before{color:var(--grey)}.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #publishing-action,.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #minor-publishing-actions,.post-type-frm_display #frm_top_bar+#poststuff #edit-slug-box,.post-type-frm_display .wrap h1.wp-heading-inline,.post-type-frm_display .wrap>.page-title-action{display:none}.post-type-frm_display #poststuff h2.nav-tab-wrapper{padding-left:10px;margin-bottom:0;padding-bottom:0}.post-type-frm_display .nav-menus-php .wrap{margin:10px 0 0}.post-type-frm_display .nav-menus-php .wrap p{padding-left:12px;padding-right:12px}.post-type-frm_display .nav-tab{display:inline-block;background-color:#f4f4f4}.post-type-frm_display .nav-tab.frm_hidden{display:none}.post-type-frm_display .nav-tab:hover{background-color:#e4e4e4}.frm_order_row,.frm_where_row{margin-bottom:7px;line-height:30px}.frm-single-settings .frm_prod_field_opt_cont{margin-top:initial;margin-bottom:20px}select.texture{display:none}.post-type-frm_display #wp-content-editor-tools,#wp-content-editor-tools{background-color:rgba(0,0,0,0)}.post-type-frm_display #major-publishing-actions{border-color:var(--grey-300);background:var(--sidebar-color)}.post-type-frm_display #frm_adv_info{width:calc(var(--big-sidebar) - 40px);height:calc(100vh - 32px);overflow:hidden}.post-type-frm_display #frm_adv_info:not(.frm_fixed){top:0 !important}.post-type-frm_display #frm_adv_info.frm_fixed{position:fixed;z-index:9999;top:32px}.post-type-frm_display #frm_adv_info ul.frm_code_list.frm-full-hover{max-height:calc(100vh - 180px)}.frm_col_one{margin-right:4%;clear:both}ul .frm_col_one{float:left}ul .frm_col_two{float:right}ul.frm_two_col{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--gap-sm)}.frm_two_col li{margin-bottom:0}.frm-info-modal a,.frm-info-modal ul,.frm-info-modal p,.frm-info-modal,.settings-lite-cta a,.settings-lite-cta ul,.settings-lite-cta{color:var(--grey-500);font-size:var(--text-md);box-shadow:none !important}.frm-info-modal h3,.settings-lite-cta h3{font-size:17px !important}.frm-green-icons .frmsvg{color:var(--green)}.frm-info-modal .postbox .inside,.settings-lite-cta .postbox .inside{padding:var(--gap-md);margin:0}.cta-inside a{color:var(--orange)}.info-modal-inside a.frm-standard-link{color:var(--primary-500)}.info-modal-inside a.frm-standard-link:hover{color:var(--primary-700)}.frm_no_p_margin>p{margin:0}.frm_code_list a.button{display:block;text-align:center;font-size:11px;overflow:hidden}#frm-navbarDrop+.frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0;min-width:300px;max-height:256px}.frm_code_list.frm-full-hover li{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu>.dropdown-item>a:visited,.frm-dropdown-menu>.dropdown-item>a:link,.frm-dropdown-menu .frm_dropdown_li,.frm_code_list.frm-full-hover a{display:flex;color:var(--grey-700);padding:5px 10px;font-size:var(--text-md);gap:var(--gap-xs);align-items:center}.multiselect-container button.multiselect-option.disabled{opacity:.5}.frm_code_list.frm-full-hover a span{max-width:83px;margin-right:var(--gap-xs);margin-left:auto}.frm_code_list.frm-full-hover a{border-radius:var(--small-radius)}.frm_code_list.frm-full-hover a:not(#frm-insert-condition),.frm_code_list.frm-full-hover a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frm_code_list.frm-full-hover a:focus span:last-child{outline:1px solid var(--primary-500);outline-offset:var(--gap-2xs)}.frm_code_list.frm-full-hover.frmcenter a{display:block}#frm-layout-classes frm-full-hover a span{max-width:45%}.frm-select-list-item.active,.frm-select-list-item:hover,.frm_wrap .ui-autocomplete li div.ui-state-active,.frm_wrap .ui-autocomplete li.ui-state-focus,.multiselect-container button.multiselect-option.active,.multiselect-container button.multiselect-option:hover,.frm-dropdown-menu>.dropdown-item>a:hover,.frm_code_list.frm-full-hover a:hover span,.frm_code_list.frm-full-hover a:hover{background:var(--primary-25);color:var(--primary-500)}.frm-select-list-item .frmsvg,.frm-dropdown-menu>.dropdown-item>a .frmsvg{opacity:.8}.frm-select-list-item:hover .frmsvg,.frm-dropdown-menu>.dropdown-item>a:hover .frmsvg{opacity:1}.frm-dropdown-menu.frm_code_list>li>a{padding:3px 15px;width:300px}#frm_edit_box_content_modal .frm-with-search,.frm-dropdown-menu .frm-with-search{padding:var(--gap-xs) 10px 0}.frm-dropdown-menu .subsubsub{padding:0 10px}.frm_grid_container{overflow:visible}.frm_code_list.frm_grid_container{grid-gap:var(--gap-xs)}.frm_code_list.frm_grid_container li{width:auto;margin:0}.frm_code_list.frm_grid_container a{display:block;font-size:var(--text-md) !important;font-weight:500;text-align:center;color:var(--primary-500);background-color:var(--light-blue);border:1px solid var(--primary-300);border-radius:var(--small-radius);padding:10px 0;box-shadow:var(--box-shadow-sm)}.frm_code_list.frm_grid_container a:hover{background-color:var(--primary-500);color:#fff}.frm_code_list.frm_grid_container a:focus-visible{outline:2px solid var(--primary-500);outline-offset:-1px}.frm-single-settings .frm_code_list.frm-full-hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{padding:0;margin:var(--gap-xs) -10px 0}.frm-single-settings .frm_code_list.frm-full-hover>li>a,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a{font-size:var(--text-md);color:var(--grey-900);padding:var(--gap-xs) 12px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span{margin:0}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:first-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:first-child{max-width:130px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:last-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:last-child{max-width:120px;margin-left:auto}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover{font-weight:500}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover .frmsvg,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover .frmsvg,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover span{color:var(--primary-500)}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover a .frmsvg{width:20px;height:20px}.frm_field_list #frm-insert-fields{max-height:none;font-size:var(--text-sm)}.frm_field_list #frm-insert-fields .button a{display:block;max-width:95%;overflow:hidden}#frm-insert-fields{padding:0 var(--gap-xs);overflow:hidden}#frm-insert-fields .frm-search{float:none;margin:0 0 var(--gap-md);width:auto}#frm-insert-fields li,#frm-insert-fields li a{text-decoration:none;font-weight:500;font-size:var(--text-md) !important;color:var(--grey-900)}#frm-insert-fields li.frm_show_upgrade{cursor:pointer;opacity:.5}#frm-insert-fields li span:not(.frm-new-pill){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}#frm-insert-fields li a.disabled:hover{cursor:not-allowed}#frm-insert-fields li.ui-draggable-disabled{opacity:.5}#frm-insert-fields li a:not(.disabled):hover .frmsvg,#frm-insert-fields li a:not(.disabled):hover i{color:var(--grey-600)}#frm-insert-fields li.frm_show_upgrade,#frm-insert-fields li a{text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;color:var(--grey-900) !important}#frm-insert-fields li a{display:flex !important;transition:background-color .2s ease-out,box-shadow .2s ease-out}#frm-insert-fields li a:not(.disabled):hover{background:#fff;box-shadow:var(--box-shadow-md)}#frm-insert-fields li a:focus-visible{outline:1px solid var(--primary-500)}#frm-insert-fields li.frm_show_upgrade.frm_hidden{display:none !important}#frm-insert-fields .frm-with-line{padding:12px var(--gap-md);font-weight:500;font-size:var(--text-sm)}#frm-insert-fields .frm-with-line::before{margin-left:calc(-1*var(--gap-sm));width:calc(100% + var(--gap-md))}.frm_code_list{clear:both}.frm_code_list.frm-full-hover a.frm_hidden,.frm_code_list .frmkeys{display:none}.frmsvg{fill:currentColor;width:18px;height:18px;vertical-align:middle}.frmsvg svg{pointer-events:none}.frmsvg.frm_svg40{width:40px;height:40px}.frmsvg.frm_svg24{width:24px;height:24px}.frmsvg.frm_svg20{width:20px;height:20px}.frmsvg.frm_svg15{width:15px;height:15px}.frmsvg.frm_svg14{width:14px !important;height:14px !important}.frmsvg.frm_svg13{width:13px;height:13px}.frmsvg.frm_svg12{width:12px;height:12px}.frmsvg.frm_svg9{width:9px;height:9px}input[disabled]{pointer-events:none}.frmbutton.ui-sortable-helper .frmsvg,.field_type_list li.frmbutton .frmsvg,.frmbutton.ui-sortable-helper i,.field_type_list li.frmbutton i,.frm_code_list a .frmsvg,.frm_code_list a i{color:var(--grey-500);display:inline-block;vertical-align:middle;width:var(--text-md);font-size:var(--text-md)}.field_type_list.frm_grid_container{gap:10px;margin:13px 0}.field_type_list li{margin:0;padding:0}.field_type_list li.frmbutton .frmsvg{width:24px;height:24px;font-size:24px}.frm_code_list i::before{font-size:inherit}.frmbutton.ui-draggable-dragging{pointer-events:none}.frmbutton.ui-draggable-dragging a{color:var(--grey-900) !important;background:var(--grey-100);text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging a{border:1px solid var(--grey-300);box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging span{font-size:15px}#frm-show-fields .frmbutton.ui-sortable-helper i,.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:#fff !important}.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:var(--grey-700) !important}.frm_sorting li.ui-state-default.ui-sortable-helper,.frmbutton.ui-sortable-helper{transition:opacity .2s;opacity:1;position:fixed;z-index:99999}#frm-insert-fields .frmbutton.ui-sortable-helper a,#frm-show-fields .frmbutton.ui-sortable-helper a{min-width:100px}li.frm_noallow.button,.frm_noallow{opacity:.5}.frm_actions_list a.frm_show_upgrade.frm_inactive_action::before,li.frm_noallow.button.frm_show_upgrade{cursor:pointer}.field_type_list li.frm_noallow.button.frm_show_upgrade:hover{border-color:inherit}.frm_noallow a{color:inherit}#frm_upgrade_modal_image{max-width:200px}#frm_upgrade_modal .frm-upgrade-message img{margin-top:10px;width:100%}.frm-tab-message{max-width:600px;margin:20px auto;color:rgba(63,75,91,.8)}.frm-settings-screenshot-toolbar{min-height:39px;display:flex}.frm-settings-screenshot-toolbar .frm-minmax-icon{height:8px;width:8px;border-radius:50%;align-self:center;margin-left:10px}.frm-settings-screenshot-toolbar .frm-minmax-icon:first-of-type{margin-left:20px}.frm-settings-screenshot-toolbar img{object-fit:contain;align-self:flex-end;margin-left:25px}.frm-settings-screenshot-toolbar+div{background:#fff;padding-top:25px;border-radius:0 0 16px 16px}.frm-settings-screenshot-toolbar+div img{max-width:calc(100% - 40px)}.frm-settings-screenshot-wrapper{max-width:700px;margin:50px auto 0;box-shadow:0 4px 4px rgba(189,196,205,.25),0 12px 56px rgba(42,57,75,.25);border-radius:16px;background:#ebecf1}.frm-dialog{z-index:100;padding:0 !important;border-radius:16px;border:none;background-color:#fff;max-width:100% !important}.frm-dialog .postbox{background:rgba(0,0,0,0);box-shadow:none;border:none;line-height:var(--leading)}.frm-dialog input[type=text],.frm-dialog textarea{font-size:var(--text-md)}.frm-dialog textarea{height:75px}.frm-dialog button.frm-button-primary{margin-right:10px}.frm-dialog .frm-sub-label,.frm-sub-label{color:var(--grey);text-transform:none;padding-left:8px}h2 .frm-sub-label{font-size:var(--text-md)}.frm-views-editor-body .ui-widget-overlay,.frm-white-body .ui-widget-overlay,.toplevel_page_formidable .ui-widget-overlay,body[class*=formidable-payments] .ui-widget-overlay,body.plugins-php .ui-widget-overlay{position:fixed;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background:var(--grey-500);opacity:.5;z-index:2}.frm-circled-icon{width:60px;height:60px;border-radius:50%;background-color:var(--primary-25)}.frm-circled-icon-large{width:80px;height:80px}.frm-circled-icon-green{background-color:var(--success-50)}.frm-circled-icon .frmsvg{width:21px;height:24px}.frm-circled-icon-large .frmsvg{width:24px}.frm-circled-icon .frmsvg use{color:var(--primary-500)}.frm-circled-icon-green .frmsvg use{color:var(--success-500)}.frm-border-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm-upgrade-message img{max-width:100%}a.frm-link-secondary{color:#c4c4c4;font-size:var(--text-sm);text-decoration:underline}.field_type_list li.button.frm_noallow,.field_type_list li.button.frm_noallow:hover,.button.frm_noallow,.button.frm_noallow:hover{color:inherit;border-color:#ccc;background:inherit}iframe#dyncontent_ifr{min-height:150px}/*! +@font-face{font-family:"s11-fp";src:url("../fonts/s11-fp.woff?v=7") format("woff");font-weight:400;font-style:normal}.frm-submenu-highlight{background:#1da867}.frm-submenu-highlight a span{color:#fff;font-weight:600}.frmfont,.frm_icon_font{text-decoration:none;text-shadow:none;font-weight:400;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:auto;line-height:1.5;transition:color .1s ease-in-out,opacity .1s ease-in-out;font-size:18px}i.frmfont,i.frm_icon_font{font-style:normal;font-variant:normal;speak:none}.frmfont::before,select.frmfont,.frm_icon_font::before,select.frm_icon_font{font-family:"s11-fp" !important;text-align:center}.frmfont,a.frmfont,.frmfont:hover,a.frmfont:hover .frm_icon_font,a.frm_icon_font,.frm_icon_font:hover,a.frm_icon_font:hover{text-decoration:none !important;box-shadow:none}.frmfont:focus,.frm_icon_font:focus{box-shadow:none}.frmfont:active,.frm_icon_font:active{outline:none}.frm_trigger .frm_icon_font{padding:0 5px}.frm_logo_icon::before{content:"\e601"}.frm_required_icon::before{content:"\e612"}.frm_delete_icon::before{content:"\e610" !important}.frm_move_icon::before{content:"\e61a"}.frm_drag_icon::before{content:"\e93b"}.frm_clear_icon::before{content:"\e60a"}.frm_noclear_icon::before{content:"\e60b"}.frm_duplicate_icon::before{content:"\e61b"}.frm_copy_icon::before{content:"\f0c5"}.frm_clone_icon::before{content:"\f24d"}.frm_tooltip_icon::before{content:"\e611"}.frm_tooltip_solid_icon::before{content:"\e907"}.frm_forbid_icon::before{content:"\e636"}.frm_checkmark_icon::before{content:"\e90a"}.frm_check_icon::before{content:"\e605"}.frm_check1_icon::before{content:"\e606"}.frm_plus_icon::before{content:"\e62f"}.frm_plus1_icon::before{content:"\e602"}.frm_plus2_icon::before{content:"\e603"}.frm_plus3_icon::before{content:"\e632"}.frm_plus4_icon::before{content:"\e60f"}.frm_minus_icon::before{content:"\e62e"}.frm_minus1_icon::before{content:"\e600"}.frm_minus2_icon::before{content:"\e604"}.frm_minus3_icon::before{content:"\e633"}.frm_minus4_icon::before{content:"\e613"}.frm_cancel_icon::before{content:"\e607"}.frm_cancel1_icon::before{content:"\e608"}.frm_close_icon::before{content:"\e928"}.frm_report_problem_solid_icon::before{content:"\e914"}.frm_report_problem_icon::before{content:"\e915"}.frm_arrowup_icon::before{content:"\e60d"}.frm_arrowup1_icon::before{content:"\e60e"}.frm_arrowup2_icon::before{content:"\e630"}.frm_arrowup3_icon::before{content:"\e62b"}.frm_arrowup4_icon::before{content:"\e62c"}.frm_arrowup5_icon::before{content:"\e635"}.frm_arrowup5_solid_icon::before{content:"\e9d"}.frm_arrowup7_icon::before{content:"\e908"}.frm_arrowup6_icon::before{content:"\e62d"}.frm_arrowdown_icon::before{content:"\e609"}.frm_arrowdown1_icon::before{content:"\e60c"}.frm_arrowdown2_icon::before{content:"\e631"}.frm_arrowdown3_icon::before{content:"\e628"}.frm_arrowdown4_icon::before{content:"\e629"}.frm_arrowdown5_icon::before{content:"\e634"}.frm_arrowdown5_solid_icon::before{content:"\e905"}.frm_arrowdown7_icon::before{content:"\e90b"}.frm_arrowdown6_icon::before{content:"\e62a"}.frm_arrow_left_icon::before{content:"\e912"}.frm_arrow_right_icon::before{content:"\e913"}.frm_filter_icon::before{content:"\e90c"}.frm_download_icon::before{content:"\e615"}.frm_upload2_icon::before{content:"\f093"}.frm_upload_icon::before{content:"\e616"}.frm_download2_icon::before{content:"\f019"}.frm_hard_drive_icon::before{content:"\e916"}.frm_pencil_solid_icon::before{content:"\e901"}.frm_pencil_icon::before{content:"\e61d"}.frm_signature_icon::before{content:"\e919"}.frm_user_icon::before{content:"\e7ff"}.frm_register_icon::before{content:"\e637"}.frm_account_circle_solid_icon::before{content:"\e853"}.frm_account_circle_icon::before{content:"\e921"}.frm_address_card_icon::before{content:"\e996"}.frm_paragraph_icon::before{content:"\f1dd"}.frm_checkbox_unchecked_icon::before{content:"\e91e"}.frm_checkbox_icon::before{content:"\e922"}.frm_checkbox_solid_icon::before{content:"\e91f"}.frm_dropdown_icon::before{content:"\e909"}.frm_caret_square_down_icon::before{content:"\f150"}.frm_check_square_icon::before{content:"\f14a"}.frm_radio_unchecked_icon::before{content:"\e971"}.frm_radio_checked_icon::before{content:"\ea54"}.frm_scrubber_icon::before{content:"\f2f8"}.frm_location_solid_icon::before{content:"\e955"}.frm_location_icon::before{content:"\e947"}.frm_toggle_on_icon::before{content:"\f205"}.frm_toggle_off_icon::before{content:"\f204"}.frm_shield_check_icon::before{content:"\f2f7"}.frm_shield_check_solid_icon::before{content:"\e97d"}.frm_clock_icon::before{content:"\e929"}.frm_clock_solid_icon::before{content:"\e985"}.frm_link_icon::before{content:"\f0c1"}.frm_email_icon::before{content:"\e626"}.frm_email_solid_icon::before{content:"\f0e0"}.frm_mail_bulk_icon::before{content:"\e95c"}.frm_phone_icon::before{content:"\e942"}.frm_calendar_icon::before{content:"\f073"}.frm_code_icon::before{content:"\e90d"}.frm_tag_icon::before{content:"\e98b"}.frm_tag_solid_icon::before{content:"\e989"}.frm_price_tags_icon::before{content:"\e936"}.frm_search_icon::before{content:"\e978"}.frm_sitemap_icon::before{content:"\f0e8"}.frm_file_icon::before{content:"\f15b"}.frm_file_text_solid_icon::before{content:"\f15c"}.frm_file_text_icon::before{content:"\e923"}.frm-option-icon::before,.frm_option_icon::before{content:"\e904"}.frm_option_solid_icon::before{content:"\e906"}.frm_more_horiz_icon::before{content:"\e5d3"}.frm_more_vert_icon::before{content:"\e5d4"}.frm_more_horiz_solid_icon{font-size:28px !important;font-weight:700;line-height:18px}.frm_more_horiz_solid_icon::before{content:"···"}.frm_more_vert_solid_icon::before{content:"\f142"}.frm_calculator_icon::before{content:"\f1ec"}.frm_keyboard_icon::before{content:"\e924"}.frm_eye_icon::before{content:"\f06e"}.frm_eye_solid_icon::before{content:"\e945"}.frm_eye_slash_icon::before{content:"\f070"}.frm_eye_slash_solid_icon::before{content:"\e949"}.frm_page_break_icon::before{content:"\e8e9"}.frm_view_day_icon::before{content:"\e8ed"}.frm_attach_file_icon::before{content:"\e226"}.frm_printer_icon::before{content:"\e926"}.frm_header_icon::before{content:"\f1dc"}.frm_h1_icon::before{content:"\e94c"}.frm_repeat_icon::before{content:"\f363"}.frm_repeater_icon::before{content:"\e974"}.frm_hashtag_icon::before{content:"\e292"}.frm_save_icon::before{content:"\e927"}.frm_sliders_icon::before{content:"\f1de"}.frm_code_commit_icon::before{content:"\f386"}.frm_star_icon::before{content:"\e9d7"}.frm_star_full_icon::before{content:"\e9d9"}.frm_star_half_icon::before{content:"\e9d8"}.frm_linear_scale_icon::before{content:"\e260"}.frm_pie_chart_icon::before{content:"\e99a"}.frm_stats_bars_icon::before{content:"\e99c"}.frm_sms_icon::before{content:"\e61c"}.frm_highrise_icon::before{content:"\e617"}.frm_mailchimp_icon::before{content:"\e622"}.frm_feed_icon::before{content:"\e624"}.frm_align_right_icon::before{content:"\e90f"}.frm_align_left_icon::before{content:"\e910"}.frm_button_icon::before{content:"\e911"}.frm_browser_icon::before{content:"\e925"}.frm_cloud_upload_solid_icon::before{content:"\e92c"}.frm_shuffle_icon::before{content:"\e917"}.frm_swap_icon::before{content:"\e918"}.frm_pallet_icon::before{content:"\e96d"}.frm_fingerprint_icon::before{content:"\e94a"}.frm_ghost_icon::before{content:"\e94b"}.frm_heart_solid_icon::before{content:"\e94d"}.frm_heart_icon::before{content:"\e94e"}.frm_history_icon::before{content:"\e94f"}.frm_import_icon::before{content:"\e91a"}.frm_export_icon::before{content:"\e91b"}.frm_label_solid_icon::before{content:"\e952"}.frm_label_icon::before{content:"\e953"}.frm_lock_open_icon::before{content:"\e957"}.frm_lock_icon::before{content:"\e959"}.frm_dollar_sign_icon::before{content:"\e91c"}.frm_percent_icon::before{content:"\e939"}.frm_external_link_icon::before{content:"\e966"}.frm_pageview_solid_icon::before{content:"\e96a"}.frm_pageview_icon::before{content:"\e96b"}.frm_settings_icon::before{content:"\e97a"}.frm_stamp_icon::before{content:"\e980"}.frm_support_icon::before{content:"\f1cd"}.frm_text_icon::before{content:"\e98d"}.frm_text2_icon::before{content:"\f031"}.frm_white_label_icon::before{content:"\e91d" !important}.frm_authorize_icon::before{content:"\e903"}.frm_icon_font.frm_activecampaign_icon{background-image:none}.frm_activecampaign_icon::before{content:"\e930"}.frm_aweber_icon::before{content:"\e627"}.frm_campaignmonitor_icon::before{content:"\e946"}.frm_constant_contact_icon::before{content:"\e931"}.frm_getresponse_icon::before{content:"\e932"}.frm_googlesheets_icon::before{content:"\e944"}.frm_building_icon::before{content:"\e93f"}.frm_hubspot_icon::before{content:"\e933"}.frm_icontact_icon::before{content:"\e940"}.frm_icon_font.frm_mailpoet_icon::before{content:"\e934"}.frm_paypal_icon::before{content:"\e61f"}.frm_sendinblue_icon::before{content:"\e943"}.frm_sendy_icon::before{content:"\e941"}.frm_salesforce_icon::before{content:"\e935"}.frm_salesforcealt_icon::before{content:"\e937"}.frm_stripe_icon::before{content:"\e902"}.frm_stripealt_icon::before{content:"\e93d"}.frm_twilio_icon::before{content:"\e620"}.frm_woocommerce_icon::before{content:"\e90e"}.frm_wordpress_icon::before{content:"\f19a"}.frm_credit_card_icon::before{content:"\e938"}.frm_credit-card-alt_icon::before,.frm_credit_card_alt_icon::before{content:"\f283"}.frm_cc_amex_icon::before{content:"\f1f3"}.frm_cc_discover_icon::before{content:"\f1f2"}.frm_cc_mastercard_icon::before{content:"\f1f1"}.frm_cc_visa_icon::before{content:"\f1f0"}.frm_cc_paypal_icon::before{content:"\f1f4"}.frm_cc_stripe_icon::before{content:"\f1f5"}:root,.frm-white-body,.frm_wrap{--grey-900: #101828;--grey-800: #1D2939;--grey-700: #344054;--grey-600: #475467;--grey-500: #667085;--grey-400: #98A2B3;--grey-300: #D0D5DD;--grey-200: #EAECF0;--grey-100: #F2F4F7;--grey-50: #F9FAFB;--grey-25: #FCFCFD;--dark-grey: var(--grey-700);--medium-grey: rgba(40, 47, 54, .65);--grey: var(--grey-500);--grey-border: var(--grey-300);--lightest-grey: rgb(250, 250, 250);--sidebar-color: var(--grey-50);--sidebar-hover: var(--grey-200);--primary-700: #2B66A9;--primary-500: #4199FD;--primary-300: #80BBFE;--primary-200: #C0DDFE;--primary-50: #ECF5FF;--primary-25: #F5FAFF;--primary-color: var(--primary-500);--primary-hover: var(--primary-700);--light-blue: var(--primary-25);--blue-border: rgb(188, 224, 253);--error-700: #B42318;--error-500: #F04438;--error-300: #FECDCA;--error-100: #FEE4E2;--error-25: #FFF5F4;--green: rgb(63, 172, 37);--orange: #F15A24;--warning-500: #F79009;--pink: rgb(226, 42, 110);--purple: rgb(141, 53, 245);--success-900: #054F31;--success-800: #065F46;--success-500: #12b76a;--success-100: #D1FAE5;--success-200: #A6F4C5;--success-50: #ECFDF3;--success-25: #f6fef9;--border-radius: 35px;--small-radius: 8px;--medium-radius: 16px;--small-sidebar: 275px;--medium-sidebar: 350px;--big-sidebar: 390px;--biggest-sidebar: 450px;--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--h-xs: 24px;--h-sm: 30px;--h-md: 36px;--leading: 1.5;--gap-2xs: 4px;--gap-xs: 8px;--gap-sm: 16px;--gap-md: 24px;--gap-lg: 32px;--gap-xl: 40px;--gap-2xl: 48px;--box-shadow-xs: 0 0.47074466943740845px 0.9414893388748169px 0 rgba(16, 24, 40, 0.05);--box-shadow-sm: 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-md: 0 1.88298px 3.76596px -0.941489px rgba(16, 24, 40, 0.1), 0 0.941489px 1.88298px -0.941489px rgba(16, 24, 40, 0.06);--box-shadow-lg: 0 6px 8px -2px rgba(16, 24, 40, 0.08), 0 1.88298px 4px -1px rgba(16, 24, 40, 0.03), 0 0.470745px 1.41223px rgba(16, 24, 40, 0.1), 0 0.470745px 0.941489px rgba(16, 24, 40, 0.06);--box-shadow-xl: 0 9.41489px 11.2979px -1.88298px rgba(16, 24, 40, 0.08), 0 3.76596px 3.76596px -1.88298px rgba(16, 24, 40, 0.03);--box-shadow-xxl: 0 11px 22px -5px rgba(16, 24, 40, 0.18);--button-shadow: 0 0.47px 0.94px 0 rgba(16, 24, 40, 0.06), 0 0.47px 1.47px 0 rgba(16, 24, 40, 0.1);--check-label-color: var(--grey-700)}@font-face{font-family:"Inter";src:url("../fonts/Inter-VariableFont_slnt,wght.ttf?v=1") format("truetype")}.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}@media not all and (min-resolution: 0.001dpcm){@supports(-webkit-appearance: none) and (stroke-color: transparent){.with_frm_style,.frm-white-body .wpbody-content,.frm_wrap{-webkit-font-smoothing:antialiased}}}.frm-sm-z-index{z-index:1}.frm-md-z-index{z-index:5}.frm-white-body,.frm-white-body p,.frm_wrap,.frm_wrap p,.frm-modal,.frm-white-body .postbox .inside{font-size:var(--text-sm);color:var(--grey-500);line-height:var(--leading)}.frm-white-body p,.frm_wrap p{margin:var(--gap-sm) 0}body:not(.frm-admin-page-styles):not(.frm-admin-page-style) .with_frm_style .frm_form_fields>fieldset{--fieldset-padding: 15px 0}a,.widget .widget-top,.stuffbox h3,.frm-collapsed{cursor:pointer;text-decoration:none}.post-type-frm_display .wrap>#posts-filter,.wrap.frm-with-margin,.frm_wrap>.wrap{margin:var(--gap-sm) var(--gap-md) var(--gap-md)}#frm_top_bar+.wrap{margin:var(--gap-xl)}.frm-full-screen #wpbody-content>.wrap{margin:0}.post-type-frm_display .wrap{margin:0}.toplevel_page_formidable #post-body-content{overflow-x:visible}.frm-full-screen{height:100%;overflow:hidden}.frm-full-screen.frm-admin-page-reports,.frm-full-screen.frm-admin-page-entries,.frm-full-screen.post-type-frm_display{overflow:auto}.frm-full-screen #wpadminbar,.frm-full-screen #adminmenumain,.frm-full-screen .wp-header-end{display:none}body.frm-white-body:not(.frm-full-screen) .mce-fullscreen{top:32px;left:160px}.frm-full-screen #wpbody-content,.frm-full-screen #wpbody,.frm-full-screen #wpcontent{padding:0;overflow:hidden;margin:0 !important}.frm-white-body #wpbody-content{position:relative;padding-bottom:0}.post-new-php.post-type-frm_display #screen-meta-links,.post-php.post-type-frm_display #screen-meta-links{display:none}.frm-white-body #screen-meta-links{position:fixed;bottom:0;right:20px}.frm-full-screen #screen-meta-links .screen-meta-toggle{right:55px}.frm-white-body #screen-meta-links .show-settings{border-radius:var(--small-radius) var(--small-radius) 0 0;border:1px solid var(--grey-300);border-bottom:none}.frm-white-body.frm-lite #screen-meta-links .screen-meta-toggle{right:125px}.frm-white-body #screen-meta{margin:0}.frm-white-body #screen-meta-links .show-settings::after{color:var(--grey)}.frm-white-body .columns-2{border-bottom:1px solid var(--grey-300)}.frm-full-screen .columns-2{border:none}body.post-type-frm_display.edit-php,body.frm-white-body{background:#fff}body.frm-white-body ul#adminmenu a.wp-has-current-submenu::after,body.frm-white-body ul#adminmenu>li.current>a.current::after{border-right-color:#fff}.frm-white-body #wpcontent{padding-left:0;padding-right:0}.frm-white-body .wrap #post-body{padding:0 20px}.frm-grey-body #wpbody{background:var(--grey-100)}.frm-grey-body #frm_top_bar{background:#fff}.post-type-frm_display .tablenav,.frm_wrap .tablenav{margin-bottom:10px}.frm-white-body .tablenav .actions select,.wp-admin .frm_wrap .tablenav select{margin-right:var(--gap-xs)}.tablenav .actions .button{margin-top:1px}.frm-white-body table.widefat{background:var(--lightest-grey);border-width:0;box-shadow:none;margin:20px 0}.frm-white-body table.widefat tfoot,.frm-white-body table.widefat thead{background:#fff}.frm-white-body table.widefat th{font-size:var(--text-md)}.frm-white-body table.widefat th a{color:var(--grey-700)}.frm-white-body table.widefat strong a{color:var(--primary-700)}.frm-scroll-box{clear:both;overflow:auto;max-height:405px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm_form_field.frm_scroll_box .frm_opt_container{height:100px;overflow:auto;border:1px solid var(--grey-300)}.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm6_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 6/span 6;align-content:center}.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+p,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+div,.frm_form_field.frm12_followed:not(.frm_hidden):not(.frm-force-hidden)+span{grid-column:span 12/span 12 !important;align-content:center}.frm_form_field.frm-phone-type~[id*=frm-field-format-custom-]>label,.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]>label{opacity:0}.frm_form_field.frm-format-dropdown~[id*=frm-field-format-custom-]{grid-column:span 6/span 6}.frm-single-settings.frm-type-textarea>.frm_grid_container [id*=frm-field-format-custom-]+p{grid-column:span 12/span 12}.frm-single-settings .frm_grid_container{column-gap:var(--gap-sm)}.frm-content-center{align-content:center}.frm-self-end{align-self:end}.frm-short-list{overflow:auto;max-height:190px}.frm-white-body table.frm-border td{font-size:var(--text-sm)}.frm-white-body .striped>tbody>:nth-child(odd){background-color:#fff}.frm_wrap td.column-title strong{display:inline}td.column-title .frm_actions_dropdown{float:right}#frm_top_bar{display:flex;gap:var(--gap-sm);width:100%;height:72px;margin:0;box-sizing:border-box;text-align:center;padding:0 var(--gap-md)}#frm_top_bar>.frm-full-close:last-child,#frm_top_bar>#frm-publishing:last-child{margin-left:auto}#frm_top_bar{border-bottom:1px solid var(--grey-300);padding:0 var(--gap-md);overflow:visible}.frm-white-body h1,.frm-white-body h2,.frm-white-body h3,.frm-white-body h4{color:var(--grey-900);font-weight:400;line-height:var(--leading) !important}.frm-white-body .wrap h1,.frm-white-body h1{font-size:var(--text-xl)}.frm-white-body .wrap h2,.frm-white-body h2{font-size:var(--text-lg);font-weight:500}.frm-white-body .wrap h3,.frm-white-body h3{font-size:var(--text-md)}.frm-white-body .wrap h4,.frm-white-body h4{font-size:var(--text-sm);font-weight:500}#frm_error_modal .frm_lock_simple{padding:20px;border-radius:50%;background-color:var(--primary-25);display:inline-block}#frm_error_modal #frm_lock_simple{color:var(--primary-500)}#frm_error_modal .frm-modal-title{display:block}#frm_error_modal .frm-modal-title h2{font-weight:600;font-size:var(--text-xl);margin:0}#frm_error_modal .frm_modal_content{padding:var(--gap-md);color:var(--grey-900)}.frm-views-editor-body .frm_page_container #frm_top_bar h1{padding:0 !important;color:var(--grey-900);font-size:var(--text-xl) !important}.post-type-frm_display .frm_top_left{padding-bottom:0 !important}.frm-new-table-view-option.frm-selected-table-view-option{border-radius:var(--small-radius);background:var(--primary-25)}.frm-views-editor-body #frm_adv_info .tabs-panel{padding-left:4px;padding-right:4px}#frm_edit_box_content_modal .frm_modal_footer{padding-top:var(--gap-sm);border-top:1px solid var(--grey-300)}#frm_edit_box_content_modal .frm_modal_footer>div{display:flex;justify-content:space-between}#frm_edit_box_content_modal #frm_modal_box_select_area,#frm_edit_box_content_modal #frm_box_content_wysiwyg_wrapper,#frm_edit_box_content_modal .frm_modal_content{max-height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #frm_modal_box_select_area{height:calc(100vh - 176px) !important}#frm_edit_box_content_modal #wp-content-editor-tools{padding-top:0}#frm_edit_box_content_modal.frm-modal .postbox .frm-modal-title+div:last-child{right:var(--gap-md)}.frm_code_list.frm-full-hover .frm-dropdown-view a{flex-direction:row-reverse}#frm_view_editor_left.frm-right-panel .accordion-section-title::before{content:"" !important;margin:0}.frm-gradient,.frm-upgrade-bar{background:linear-gradient(90deg, #388CF3, #1961D5, #8C7FD8) !important;color:#fff !important;border:0 !important}.frm-gradient.frm-button-primary:not([disabled]),.frm-gradient.frm-button-primary:not([disabled]):hover,.frm-gradient.frm-button-primary:not([disabled]):focus{background:linear-gradient(90deg, #1961D5, #816CFA) !important}.frm-upgrade-bar,.frm-gradient{position:relative}.frm-upgrade-bar::before,.frm-gradient::before{content:"";display:none;position:absolute;top:0;right:0;bottom:0;left:0;background-color:hsla(0,0%,100%,.1);z-index:0}.frm-upgrade-bar:hover::before,.frm-gradient:hover::before,.frm-gradient:focus::before{display:block}.frm-upgrade-bar-inner,.frm-gradient>*{position:relative;z-index:1}.frm-upgrade-bar{border-bottom:1px solid var(--sidebar-hover);padding:9px 0;font-size:12px;text-align:center}.frm-upgrade-bar a{color:currentColor !important;text-decoration:underline}.frm-upgrade-bar a:focus{outline:1px dotted var(--sidebar-hover)}.frm-upgrade-bar span{opacity:.9}a h1 .frmsvg{color:var(--grey-400);vertical-align:middle;min-width:var(--text-sm)}a .frmsvg{color:currentColor}.frm_wrap .view-switch a.current::before,.frm-white-body a,.frm_wrap a,.frm_wrap a i{color:var(--primary-color)}.frm_wrap a:active,.frm_wrap a:hover{color:var(--primary-700);box-shadow:none}.post-type-frm_display a:focus,.frm_wrap a:focus{box-shadow:none}.frm_top_left{text-align:left;float:left;white-space:nowrap;max-width:250px;overflow:hidden;text-overflow:ellipsis;align-self:center}.post-type-frm_display .frm_top_left,.frm_top_left.frm_top_wide{max-width:100%}.post-type-frm_display .frm_nav_bar .frm-header-logo,.frm_nav_bar .frm-header-logo{margin:18px 0 10px}#frm_top_bar .frm_form_nav{flex:1}ul.frm_form_nav{margin:0 auto;padding-top:18px;display:block;min-width:240px}.nav-tab-wrapper.frm_form_nav{padding:0 25px}ul.frm_form_nav>li{margin:0 min(3.5%,32px) 0 0;display:inline-block}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle,.post-type-frm_display .frm_form_nav .nav-tab-active,.frm_form_nav>li>a{font-size:1.3em;text-decoration:none;display:block;padding:6px 2px 4px;font-weight:500;color:var(--grey-700);border-bottom:2px solid rgba(0,0,0,0)}.post-type-frm_display.js .postbox .handlediv .toggle-indicator::before{margin-top:10px}.frm-nav-tabs a:focus,.frm-nav-tabs a:active,.frm_form_nav a:active,.frm_form_nav a:focus{outline:none;box-shadow:none}.frm_form_nav>li>a{font-size:var(--text-md);font-weight:400;color:var(--grey-500)}.frm_form_nav>li>a:hover{border-color:var(--primary-700)}.frm_form_nav .frm-dropdown-menu a:hover{background-color:#eaf2fa}.post-type-frm_display .frm_form_nav .nav-tab-active,.post-type-frm_display .frm_form_nav .nav-tab-active:hover,.frm_form_nav>li a.current_page{color:var(--primary-500);border-color:var(--primary-500);background:rgba(0,0,0,0);opacity:1;font-weight:600}.frm-full-close{display:none;padding-left:var(--gap-md);border:0 solid var(--grey-300);border-left-width:1px;height:100%;box-sizing:border-box}.frm-full-screen .frm-full-close{display:flex;align-items:center}.frm-full-close a{display:block}.frm-full-close .frmsvg{font-size:20px;width:20px;height:20px;color:var(--grey-500)}#frm_top_bar h1{font-weight:400;padding:0;margin:0;color:var(--grey-900);display:inline-flex;gap:var(--gap-sm);align-items:center;text-align:left;min-width:200px}#frm_top_bar h1 span{max-width:175px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;display:inline-block;vertical-align:bottom}#frm_top_bar ul.frm_form_nav,#frm_top_bar .frm-header-logo,#frm_top_bar #frm_bs_dropdown{align-self:center;margin-top:0;margin-bottom:0;padding-top:0}#frm_top_bar .frm-header-logo{display:flex}#frm_top_bar h2{float:left;margin:0 0 0 var(--gap-sm);padding:2px 0 2px var(--gap-sm);font-weight:400;border-left:2px solid var(--grey)}.frm_wrap>#frm_top_bar #frm-publishing{margin-top:0}#frm-publishing{min-width:225px;align-self:center;align-items:center;display:flex;flex-direction:row-reverse;gap:0 var(--gap-sm);flex-wrap:wrap}.frm_wrap .postbox{border-color:var(--grey-300);border-radius:6px;box-shadow:none}.frm_wrap .postbox h3.hndle{cursor:default;padding:10px 20px;margin:0;line-height:1.4em;border-color:var(--grey-300)}.frm-pre-hndle{font-size:15px;padding:5px;margin:9px 15px}.frm-empty-row{display:none}.frm-child-row{box-shadow:5px 0 0 0 inset var(--sidebar-hover)}.frm_animate_bg{transition:background 200ms linear,color 200ms linear}.wrap>.subsubsub{clear:both;margin:0}.frm_wrap .subsubsub a{line-height:var(--leading);font-size:var(--text-sm)}.frm-admin-page-styles .frm_page_container,.frm_wrap .frm_page_container{height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;padding-top:0;position:fixed;top:32px;bottom:0;left:0;right:0}.frm-admin-page-translate .frm_wrap .frm_page_container,.frm-admin-page-update_translations .frm_wrap .frm_page_container{position:static}.auto-fold.frm-admin-page-styles .frm_page_container,.auto-fold .frm_wrap .frm_page_container,.frm-unfold.frm-admin-page-styles .frm_page_container,.frm-unfold .frm_wrap .frm_page_container{left:160px}.folded.frm-admin-page-styles .frm_page_container,.folded .frm_wrap .frm_page_container{left:38px}.frm-full-screen.frm-admin-page-styles .frm_page_container,.frm-full-screen .frm_wrap .frm_page_container{height:100vh;top:0;left:0}.frm-full-screen.frm-admin-page-entries .frm_page_container,.frm-new-entry .frm_page_container,.frm-admin-page-reports .frm_page_container,.frm_list_entry_page .frm_page_container{height:auto;display:block}.frm-new-entry .columns-2{border:none}.frm-white-body #frm_top_bar,.frm-white-body .columns-2{flex:0 0 auto}.columns-2 .frm-right-panel+div{padding-bottom:var(--gap-md);border-left:1px solid var(--grey-300)}.columns-2 .frm-right-panel+div,.frm_wrap #post-body-content{padding-bottom:0;padding-top:var(--gap-sm);margin-bottom:0;background:#fff;width:auto;float:none;flex:2}.frm-white-body .columns-2{flex:1;display:flex;overflow:hidden}.frm-white-body .columns-2>div{overflow-y:auto;box-sizing:border-box}.frm_wrap .columns-2 .frm-right-panel,.frm-right-panel{flex:0 0 var(--biggest-sidebar);float:none;width:var(--biggest-sidebar);min-width:var(--biggest-sidebar);background-color:var(--sidebar-color);margin:0;box-shadow:none;border:none;padding-bottom:25px}.frm-right-panel .frm_field_list,.frm_wrap .frm-right-panel #frm_adv_info,.frm_wrap #postbox-container-1 #frm_adv_info{box-shadow:none;border:none;margin-bottom:26px}#new_fields,.frm-has-modal,p.frm_has_shortcodes{position:relative}.frm-inline-modal.postbox{background:#fff;border-color:var(--grey-100);border-radius:var(--small-radius);box-shadow:var(--box-shadow-lg)}.frm_has_shortcodes .frmsvg:not(.frm_help .frmsvg),.frm_has_shortcodes i:not([class*=mce-]){position:absolute;color:var(--primary-500);border-radius:50%;border:1px solid rgba(0,0,0,0);z-index:100;text-align:center}.frm_has_shortcodes .frmsvg.frm-show-box{border-radius:6px !important}.frm_has_shortcodes input,.frm_has_shortcodes textarea{padding-left:18px;box-sizing:border-box}#form_settings_page #frm_adv_info,#frm_builder_page #frm_adv_info{display:none;top:0;width:310px;max-height:315px;min-height:200px;overflow-y:scroll;z-index:100}#form_global_settings .columns-2>div{overflow:auto;height:calc(100vh - 32px)}#form_global_settings .columns-2 .frm-right-panel,#form_settings_page .columns-2 .frm-right-panel,#wpbody-content .frm-page-skeleton .frm-right-panel{flex:0 0 var(--small-sidebar);width:var(--small-sidebar);min-width:var(--small-sidebar)}#form_global_settings .frm_grid_container{gap:0 var(--gap-md)}.frm-inner-content{padding:var(--gap-md)}.post-type-frm_display #poststuff{padding:0 0 10px 40px}#postbox-container-2 .postbox .inside{padding:15px 25px}#postbox-container-2 #frm_advanced .inside h3{margin:15px -25px;font-weight:600}#form_settings_page .frm-inner-content{padding-top:0;padding-bottom:150px;position:relative}.frm_wrap #submitdiv{margin-bottom:0;border-width:0 0 1px;width:100%;min-width:unset}.frm_wrap #frm_adv_info .handlediv,.frm_wrap #frm_adv_info .hndle{display:none}.frm_wrap .menu-settings{border:none;margin-top:0}.nodrag a{cursor:pointer}.frm_wrap #frm_adv_info .inside{margin:0}#frm_adv_info>.inside{padding:0}#frm_adv_info ul.subsubsub{padding-bottom:var(--gap-xs) !important}#frm_adv_info ul.subsubsub a{font-weight:500}#frm_adv_info ul.subsubsub .frm-vertical-separator{display:inline-block;width:1px;height:8px;background-color:var(--grey-300)}#frm_adv_info #frm-insert-condition{background-color:var(--primary-50)}#frm_adv_info #frm-insert-condition:hover{background-color:var(--primary-25)}#frm_builder_page #frm_adv_info{width:322px;max-height:356px;border-radius:var(--small-radius);overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory{height:356px;overflow:hidden}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div{max-height:286px;padding:0}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*{padding-bottom:var(--gap-sm);max-height:unset}#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div>*:last-child{padding-bottom:var(--gap-xs)}#frm_builder_page #frm_adv_info #frm-nav-tabs{display:flex;gap:var(--gap-xs);background-color:var(--grey-100);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:var(--gap-xs) var(--gap-2xs) var(--gap-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li{flex:1;text-align:center}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a{font-weight:500;line-height:1;color:var(--grey-500);border-radius:var(--small-radius);border:0;padding:var(--gap-xs);margin:0}#frm_builder_page #frm_adv_info #frm-nav-tabs>li a:hover{background-color:#eaecf0;color:var(--grey-500) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info #frm-nav-tabs>li.frm-tabs a{background-color:#fff;color:var(--grey-900) !important;box-shadow:var(--box-shadow-sm)}#frm_builder_page #frm_adv_info .frm-search,#frm_builder_page #frm_adv_info .frm-with-search{padding-top:0;margin:0}.frm-right-panel .frm-inline-modal.postbox .inside{margin:0;padding:0 14px 14px}.frm-right-panel .frm-inline-modal.postbox .inside .frm-with-line,.frm-right-panel .frm-inline-modal.postbox .inside .accordion-section-content h4{margin-left:-14px;margin-right:-14px}.frm-right-panel .frm-inline-modal .inside p:not(.howto),.frm-right-panel .frm-inline-modal .inside a{font-size:15px}.frm-inline-modal .inside a.frm_icon_font{font-size:18px}.frm-nav-tabs{margin:10px 0 20px;padding:0 var(--gap-sm);display:block;border-bottom:1px solid var(--grey-300)}#frm-nav-tabs{position:-webkit-sticky;position:sticky;top:0;background-color:var(--sidebar-color);z-index:98;margin-top:0;padding-top:5px}.frm_form_settings #frm_adv_info #frm-nav-tabs{background-color:#fff;margin:0 -4px}.frm_form_settings span.frm-with-right-icon,#frm_builder_page .frm_has_shortcodes span.frm-with-right-icon:not(.frm_hidden){display:block}.frm-inline-modal .frm-nav-tabs,#frm_adv_info .frm-nav-tabs{margin:5px 0 0}#frm_adv_info .frm-nav-tabs.frm-compact-nav{padding-right:0;padding-left:20px}.frm-nav-tabs li{display:inline-block;margin:0}.frm-nav-tabs a{color:var(--grey-700);padding:10px 1px;margin:0 9px;border-bottom:2px solid rgba(0,0,0,0)}.frm_form_settings #frm_adv_info .frm-nav-tabs a{padding:5px 1px;color:var(--grey-500)}.frm-nav-tabs.frm-compact-nav a{margin:0 5px}.frm-nav-tabs a{display:block;opacity:.9}#frm_adv_info .frm-nav-tabs a{color:var(--grey-700)}.frm-nav-tabs a:hover,.frm-nav-tabs .frm-tabs a{color:var(--primary-500) !important;border-color:var(--primary-500)}.frm_form_settings #frm_adv_info .frm-nav-tabs .frm-tabs a{font-weight:500}#frm-bulk-modal .howto,#frm-bulk-modal h3{font-size:var(--text-sm);font-weight:400;margin:5px 0 10px;color:var(--grey)}#frm-bulk-modal h3{margin-left:20px}.frm-right-panel a.frm_add_logic_link,.frm-right-panel h3{color:var(--grey-700);font-size:var(--text-lg);font-weight:400;margin:0}.frm-right-panel h3 i{color:var(--grey-700);float:right;width:16px;cursor:pointer}.frm-settings-panel{padding:var(--gap-sm);padding-right:var(--gap-xs)}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-delimiter{top:var(--gap-xs);left:var(--gap-xs);width:calc(100% - var(--gap-sm))}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-navs{padding:var(--gap-xs) var(--gap-xs) 0}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div{max-height:0;visibility:hidden}.frm-settings-panel .frm-style-tabs-wrapper .frm-tabs-slide-track>div.frm-active{max-height:unset;visibility:visible}.frm-settings-panel .frm-embed-field-placeholder{height:unset}.frm-settings-panel .frm-embed-field-placeholder img{height:100px}.frm-settings-panel .frm-embed-field-placeholder .frm-embed-message{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-sm);max-width:unset;color:var(--grey-800);padding:var(--gap-lg);border:0;box-shadow:var(--box-shadow-sm);margin:1px}.frm-single-settings .frm-default-value-wrapper>p{margin-bottom:0}.frm-single-settings .frm-default-value-wrapper+p:empty{display:none}.frm-single-settings [class*=frm-lookup-box-] .frm_grid_container p{margin-top:0 !important}.frm-single-settings .frm_single_option[id^=frm_watch_lookup_]{margin-bottom:var(--gap-xs) !important}.frm-single-settings>h3:first-of-type{position:relative;background-color:rgba(0,0,0,0) !important;border-top:none;padding-top:0 !important;margin-top:0 !important}.frm-single-settings>h3:first-of-type::after{content:"";position:absolute;left:var(--gap-sm);right:var(--gap-sm);bottom:0;height:1px;background-color:var(--sidebar-hover)}.frm-flex-justify,.frm-right-panel .frm-single-settings h3{display:flex;justify-content:space-between;align-items:center}#post-body-content+.frm-right-panel{flex:0 0 var(--medium-sidebar);width:var(--medium-sidebar);min-width:var(--medium-sidebar);border-left:1px solid var(--sidebar-hover)}.frm-new-entry #post-body-content+.frm-right-panel,.frm-new-entry .frm-right-panel{background:none;border:none}#post-body-content+.frm-right-panel h3{padding:20px 20px 0;font-size:17px}#post-body-content+.frm-right-panel .frm_with_icons:first-of-type h3{border:none}#frm-insert-fields h3{color:var(--grey);font-size:15px;font-weight:400;border-top:none;border-bottom:1px solid var(--sidebar-hover);margin:0;padding:10px 10px 10px 25px}.frm_wrap #frm_adv_info ul.category-tabs{margin:0;padding:10px 0 9px;font-size:15px;background:rgba(0,0,0,0)}.frm_wrap #frm_adv_info ul.category-tabs li{padding:10px;background-color:rgba(0,0,0,0) !important}.frm_wrap #frm_adv_info ul.category-tabs li:first-child{border:none}.frm_wrap #frm_adv_info .categorydiv div.tabs-panel{border:none;background:rgba(0,0,0,0)}.frm_wrap #frm-categorydiv{border-right:none}#frm_adv_info #frm-conditionals{padding-top:var(--gap-sm)}#postbox-container-1 #taxonomy-linkcategory #frm-html-tags{display:none;max-height:none}#postbox-container-1 .frm_field_list #frm-insert-fields .frmbutton.dropdown{position:relative}.frm-white-body #footer-upgrade{display:none}.frm-admin-footer-links,.frm-admin-footer-links-nav,.frm-admin-footer-links-socials{display:flex;justify-content:center}.frm-admin-footer-links{gap:var(--gap-2xs);flex-direction:column;text-align:center;padding:var(--gap-xl) 0 var(--gap-lg);font-size:var(--text-xs);color:var(--grey-400)}body.frm-hidden-overflow{height:100%;overflow:hidden}.frm-admin-footer-links-nav{gap:var(--gap-2xs);margin-bottom:var(--gap-xs)}.frm-admin-footer-links-socials{gap:var(--gap-xs)}.frm-admin-footer-links-socials a{color:var(--grey-400)}.frm_list_entry_page h2{float:left}.frm_list_entry_page h2+.error{clear:both}.frm_sidebar select{width:100%;margin-left:0;margin-right:0}.frm_sidebar #search-submit{float:right}.frm_single_entry_page #submitdiv{margin:0}.frm_single_entry_page .hndle a{font-size:13px}.frm-right-panel #publishing-action{float:none}.frm-right-panel #major-publishing-actions{border-top:none;height:32px;background:rgba(0,0,0,0)}#major-publishing-actions .frm_submit_form{float:right;margin-left:5px}.frm_orange_button,.frm_reverse_button{font-size:12px;border:1px solid var(--orange);color:var(--orange);font-weight:600;padding:1px 4px;border-radius:4px;background:rgba(0,0,0,0)}.frm_reverse_button:hover,.frm_reverse_button:active,.frm_reverse_button:focus{color:#fff;background:var(--orange);border:1px solid var(--orange)}.frm_reverse_button{font-size:1em;transition:all .2s ease}.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.wp-core-ui .button.frm-button-primary,.frm-button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-search .button,.frm-white-body .search-box .button,.frm-white-body .tablenav .button,.frm_orange_button,.toplevel_page_formidable #frm_upgrade_modal .button-primary,.wp-core-ui.frm-white-body .button-primary,.wp-core-ui.frm-white-body .button-secondary,.frm-white-body .button-primary,.frm-white-body .button-secondary,#frm-form-button button,.frm-form-button button,.frm-preview-buttons button,.frm-button-red,.frm-button-tertiary{text-shadow:none;box-shadow:none;border-radius:30px;border:1px solid var(--primary-500);font-size:var(--text-sm);transition:all .2s ease;padding:7px 16px;height:auto;min-height:28px;outline:none;line-height:var(--leading);box-sizing:border-box;font-weight:500;margin-bottom:0;display:inline-block}.frm-button-primary.frm-sharp,.frm-button-secondary.frm-sharp{border-radius:12px !important}#wpcontent .frm-button-secondary.frm-button-gradient{position:relative;border-color:rgba(0,0,0,0) !important;background-clip:padding-box !important}#wpcontent .frm-button-secondary.frm-button-gradient::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;margin:-1px;border-radius:inherit;background:linear-gradient(90deg, #129EFD 0%, #A334FD 100%);transition:opacity 150ms ease-out}#wpcontent .frm-button-secondary:hover::before{opacity:.5}.no-js.wp-core-ui .frm-search .button.hide-if-no-js,.js.wp-core-ui .frm-search .button.hide-if-js{display:none}.frm-button-tertiary{border-color:rgba(0,0,0,0);color:var(--primary-500)}.frm-button-tertiary:focus{outline:none}.frm-button-tertiary.frm_loading_button::before{border-right-color:var(--grey);border-bottom-color:var(--grey)}.frm-button-red,.frm-button-red:focus{--primary-color: var(--error-500);--primary-500: var(--error-500);--primary-700: var(--error-700)}.frm-button-red:not(.frm-button-tertiary),.frm-button-red:not(.frm-button-tertiary):focus{color:#fff !important}.frm-white-body h2 .button,.post-type-frm_display h2 .frm-button-primary,.frm-white-body .tablenav .button,.frm-button-primary.frm-button-sm,.frm-button-secondary.frm-button-sm,.frm-button-tertiary.frm-button-sm,.frm-button-red.frm-button-sm{padding:4px 12px !important;font-size:var(--text-xs) !important}.frm_no_style_button{background:rgba(0,0,0,0)}.frm-with-icon{display:flex;gap:var(--gap-xs);align-items:center}.frm-with-icon svg{opacity:.65}.frm-with-icon.button svg{height:var(--text-sm);width:var(--text-sm)}.frm-with-icon.frm-button-sm svg{height:var(--text-xs);width:var(--text-xs)}.frm-white-body .button.add_media{padding-left:12px !important;padding-right:12px !important;font-size:var(--text-xs);border-radius:var(--border-radius)}.wp-core-ui.frm-white-body #post-query-submit.button,.wp-core-ui.frm-white-body .button.tablenav-pages-navspan,.wp-core-ui.frm-white-body .button.first-page,.wp-core-ui.frm-white-body .button.prev-page,.wp-core-ui.frm-white-body .button.next-page,.wp-core-ui.frm-white-body .button.last-page,.wp-core-ui.frm-white-body .button.action{background-color:rgba(0,0,0,0);border-color:var(--grey-300);color:var(--grey-700);border-radius:var(--border-radius)}.post-type-frm_display.wp-core-ui .button-primary,.frm-button-primary,.wp-core-ui .button-primary.frm-button-primary,.frm_single_entry_page #frm-publishing .button-primary{background-color:var(--primary-500) !important;color:#fff !important}.frm-button-primary.frm_large,.frm-button-secondary.frm_large{height:auto !important;padding:12px 16px !important}.frm-button-secondary.frm-small,.frm-button-primary.frm-small{font-size:var(--text-xs) !important;height:auto !important;padding:var(--gap-2xs) 12px !important}.frm-button-primary i::before{color:#fff}.wp-core-ui .button-primary.frm-button-primary:not([disabled]):hover,.frm-button-primary:not([disabled]):hover{background:var(--primary-700) !important;border-color:var(--primary-700) !important}.wp-core-ui .button-primary.frm-button-primary:active{vertical-align:inherit}.frm-white-body #search-submit,#frm-form-button .frm_button_submit,.frm-form-button .frm_button_submit,.frm-white-body .frm-preview-buttons button,.frm-white-body .button:not(.frm-button-primary),.wp-core-ui.frm-white-body .button-secondary,.wp-core-ui .button-secondary.frm-button-secondary,.wp-core-ui .button.frm-button-secondary,.frm-white-body .frm-button-secondary,.frm-button-secondary{color:var(--grey-800);border-color:var(--grey-300);background-color:#fff}#wp-content-media-buttons button,#wp-content-media-buttons a.button{border-color:var(--grey-300)}.frm_orange_button{border-color:#da791d !important;background:var(--orange);color:#fff}.frm-white-body .button:not(.frm-button-primary):focus,.frm-white-body .button:not(.frm-button-primary):active,.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .frm-button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:hover,.wp-core-ui.frm-white-body .button-secondary:focus,.wp-core-ui.frm-white-body .tablenav .button:hover,.frm_wrap .preview>.button:hover,.frm-white-body #search-submit:hover{border-color:var(--grey-300) !important;color:var(--grey-800);background:var(--grey-50) !important;box-shadow:none !important;outline:none !important}.frm-button-primary .frmsvg{color:#fff}.frm_wrap .preview i{font-size:inherit}.frm-white-body .frm-button-primary:focus,.frm-white-body .frm-button-primary:active,#frm-addons-page .button-primary:focus,#form_global_settings .button-primary:focus,#frm_upgrade_modal .button:focus{border-color:var(--primary-700) !important;background-color:var(--primary-700) !important;box-shadow:none !important;outline:none !important}.frm_wrap .preview>.button:focus,.frm_orange_button:hover,.frm_orange_button:focus,.toplevel_page_formidable #frm_upgrade_modal .button-primary:hover,.toplevel_page_formidable #frm_upgrade_modal .button-primary:focus,.toplevel_page_formidable .frm_wrap button.button-primary:hover,.toplevel_page_formidable .frm_wrap button.button-primary:focus{outline:none}.frm_orange_button:hover,.frm_orange_button:focus{border-color:var(--orange) !important;background:rgba(0,0,0,0);color:var(--orange);opacity:1}.major-publishing-actions.frm_create_form_header{padding:8px 0}.major-publishing-actions.frm_create_form_header .frm_create_form_header_inner{font-size:15px;background:rgba(0,0,0,0)}.frm-menu-boxes .frm_blank_form_text{padding-bottom:26px}input.frm_insert_in_template{font-size:10px;width:98%;font-weight:400}.frm-dismissible a.dismiss:focus{box-shadow:none}.frm-dismissible a.dismiss{top:10px;right:10px;position:absolute}.frm-dismissible a.dismiss svg{color:var(--grey-800)}.wp-admin .frm-review-notice{position:fixed !important;bottom:var(--gap-2xl);right:var(--gap-lg);width:380px;text-align:center;border-color:var(--grey-100);padding:var(--gap-lg);border-radius:var(--medium-radius);box-shadow:var(--box-shadow-lg) !important;z-index:999;box-sizing:border-box;--gap-sm: 16px;--gap-md: 24px;--gap-2xl: 48px}.wp-admin .frm-review-notice *{box-sizing:border-box}.frm-review-notice-icon{display:inline-flex;margin-bottom:var(--gap-sm)}.wp-admin .frm-review-notice-title{font-weight:600;margin-top:0;margin-bottom:var(--gap-xs)}.wp-admin .frm-review-notice-text{margin-top:0;margin-bottom:var(--gap-md)}.frm-review-notice-signature{text-align:left;margin:var(--gap-md) 0}.frm-review-notice-signature img{width:40px;height:40px;padding:3px;box-shadow:var(--box-shadow-md);border-radius:100%}#wpwrap .frm-dismiss-review-notice{top:16px;right:19px}.frm-review-notice #frmapi-feedback [class^=frm__]{display:none}.frm-review-notice #frmapi-feedback input,.frm-review-notice #frmapi-feedback textarea{border-color:var(--grey-300);border-radius:var(--small-radius)}.frm-review-notice #frmapi-feedback input{min-height:unset;max-height:36px}.frm-review-notice #frmapi-feedback textarea{max-height:80px;padding-top:var(--gap-xs)}.frm-review-notice #frmapi-feedback .frm_message{color:var(--success-900);background-color:var(--success-25);border:1px solid var(--success-200);padding:var(--gap-sm) var(--gap-md);margin:0}.frm-review-notice #frmapi-feedback .frm_message p{margin:0}.frm-review-notice #frmapi-feedback .frm_button_submit{background-color:var(--primary-500);border-color:var(--primary-500) !important;cursor:pointer}.frm-review-notice #frmapi-feedback .frm_button_submit:hover,.frm-review-notice #frmapi-feedback .frm_button_submit:focus{color:#fff;background-color:var(--primary-700);border-color:var(--primary-700) !important}.frm-review-notice .frm_error,.frm-review-notice label{color:#444;text-align:left}.frm-review-notice label{font-size:var(--text-sm)}.frm-floating-success-message{position:fixed;z-index:999;border-radius:4px;right:10px;bottom:10px}.frm-box-shadow-xxl{box-shadow:var(--box-shadow-xxl) !important}.frm-text-primary-500{color:var(--primary-500)}.frm-text-grey-400{color:var(--grey-400) !important}.frm-text-grey-500{color:var(--grey-500)}.frm-text-grey-600{color:var(--grey-600) !important}.frm-text-grey-700{color:var(--grey-700)}.frm-text-grey-900{color:var(--grey-900)}.frm-text-success-500{color:var(--success-500)}.frm-text-warning-500{color:var(--warning-500)}.frm_no_margin,.frm-m-0{margin:0 !important}.frm-m-12{margin:var(--gap-2xl)}.frm-m-2xs{margin:var(--gap-2xs) !important}.frm_no_top_margin,.frm-mt-0{margin-top:0 !important}.frm-mt-2xs{margin-top:var(--gap-2xs) !important}.-frm-mt-2xs{margin-top:calc(-1*var(--gap-2xs)) !important}.frm-mt-xs{margin-top:var(--gap-xs) !important}.frm-mt-sm{margin-top:var(--gap-sm) !important}.frm-mt-md{margin-top:var(--gap-md) !important}.frm-mt-lg{margin-top:var(--gap-lg) !important}.frm-mt-2xl{margin-top:var(--gap-2xl) !important}.frm-mt-auto{margin-top:auto !important}.frm_no_bottom_margin,.frm-mb-0{margin-bottom:0 !important}.frm-mb-2xs{margin-bottom:var(--gap-2xs) !important}.frm-mb-6{margin-bottom:6px !important}.frm-mb-sm{margin-bottom:var(--gap-sm) !important}.frm-mb-12{margin-bottom:12px !important}.frm-mb-xs{margin-bottom:var(--gap-xs) !important}.frm-mb-md{margin-bottom:var(--gap-md) !important}.frm-mb-lg{margin-bottom:var(--gap-lg) !important}.frm-ml-2xs{margin-left:var(--gap-2xs) !important}.frm-ml-xs{margin-left:var(--gap-xs) !important}.frm-ml-auto{margin-left:auto}.-frm-ml-2xs{margin-left:calc(-1*var(--gap-2xs)) !important}.frm-mr-auto{margin-right:auto}.frm-force-mr-auto{margin-right:auto !important}.frm-mr-2xs{margin-right:var(--gap-2xs) !important}.frm-mr-xs{margin-right:var(--gap-xs) !important}.frm-mr-2{margin-right:2px !important}.frm-mx-0{margin-left:0 !important;margin-right:0 !important}.frm-mx-xs{margin-left:var(--gap-xs) !important;margin-right:var(--gap-xs) !important}.frm-mx-sm{margin-left:var(--gap-sm) !important;margin-right:var(--gap-sm) !important}.frm-my-sm{margin-top:var(--gap-sm) !important;margin-bottom:var(--gap-sm) !important}.frm-my-xs{margin-top:var(--gap-xs) !important;margin-bottom:var(--gap-xs) !important}.frm-p-0{padding:0 !important}.frm-p-1,.frm-p-2xs{padding:var(--gap-2xs)}.frm-p-sm,.frm-p-4{padding:var(--gap-sm) !important}.frm-p-sm{padding:var(--gap-sm) !important}.frm-p-6,.frm-p-md{padding:var(--gap-md) !important}.frm-p-xl{padding:var(--gap-xl) !important}.frm-px-0{padding-left:0 !important;padding-right:0 !important}.frm-py-0{padding-top:0 !important;padding-bottom:0 !important}.frm-py-2xs{padding-top:var(--gap-2xs) !important;padding-bottom:var(--gap-2xs) !important}.frm-py-sm{padding-top:var(--gap-sm) !important;padding-bottom:var(--gap-sm) !important}.frm-pt-0{padding-top:0 !important}.frm-pt-2xs{padding-top:var(--gap-2xs) !important}.frm-pt-xs{padding-top:var(--gap-xs) !important}.frm-pt-sm{padding-top:var(--gap-sm) !important}.frm-pt-md{padding-top:var(--gap-md) !important}.frm-pt-xl{padding-top:var(--gap-xl) !important}.frm-pr-lg{padding-right:var(--gap-lg) !important}.frm-pb-md{padding-bottom:var(--gap-md) !important}.frm-pb-sm{padding-bottom:var(--gap-sm) !important}.frm-pb-xs{padding-bottom:var(--gap-xs) !important}.frm-pb-2xs{padding-bottom:var(--gap-2xs) !important}.frm-pb-0{padding-bottom:0 !important}.frm-px-sm{padding-right:var(--gap-sm) !important;padding-left:var(--gap-sm) !important}.frm-px-xs{padding-right:var(--gap-xs) !important;padding-left:var(--gap-xs) !important}.frm-px-md{padding-right:var(--gap-md) !important;padding-left:var(--gap-md) !important}.frm-text-xs{font-size:var(--text-xs) !important}.frm-text-sm{font-size:var(--text-sm) !important}.frm-text-md{font-size:var(--text-md) !important}.frm-text-lg{font-size:var(--text-lg) !important}.frm-text-xl{font-size:var(--text-xl) !important}.frm-leading-none{line-height:1}.frm-italic{font-style:italic}.frm-no-italic{font-style:normal}.frm-capitalize{text-transform:capitalize}.frm-font-normal{font-weight:400 !important}.frm-font-medium{font-weight:500 !important}.frm-font-semibold{font-weight:600 !important}.frm-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[class*=frm-line-clamp-]{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.frm-line-clamp-2{-webkit-line-clamp:2}.frm-white-space-nowrap{white-space:nowrap}.frm-rounded-sm{border-radius:var(--small-radius) !important}.frm-rounded-6{border-radius:6px !important}.frm-w-auto{width:auto !important}.frm-w-full{width:100% !important}.frm-w-half{width:50% !important}.frm-w-fit{width:fit-content !important}.frm-max-w-fit{max-width:fit-content}.frm-h-auto{height:auto !important}#wpwrap .frm-force-hidden{display:none !important}.frm_block,.frm-block{display:block}.frm_inline{display:inline}.frm-force-inline{display:inline !important}.frm_inline_block{display:inline-block !important}.frm-inline-flex,#wpbody-content .frm-inline-flex{display:inline-flex}.frm-flex{display:flex}.frm-force-flex{display:flex !important}.frm_hidden,.js .frm-hide-js{display:none}.frm-flex-box{display:flex;gap:var(--gap-sm)}.frm-flex-col{display:flex;flex-direction:column}.frm-flex-full{flex:1}.frm-force-flex-center,.frm-flex-center{justify-content:center;align-items:center}.frm-flex-center{display:flex}.frm-force-flex-center{display:flex !important}.frm-shrink-0{flex-shrink:0}.frm-gap-0{gap:0 !important}.frm-gap-2xs{gap:var(--gap-2xs)}.frm-gap-xs{gap:var(--gap-xs)}.frm-gap-sm{gap:var(--gap-sm)}.frm-gap-md{gap:var(--gap-md)}.frm-gap-xl{gap:var(--gap-xl)}.frm-justify-start{justify-content:start !important}.frm-justify-center{justify-content:center !important}.frm-justify-between{justify-content:space-between}.frm-justify-end{justify-content:end}.frm-items-center{align-items:center}.frm-items-stretch{align-items:stretch}#wpbody-content .frm-flex-wrap{flex-wrap:wrap}.frm-grow{flex-grow:1}.frm-order-first{order:-9999}.frm-order-last{order:9999}.frm-order-none{order:0}.frm-h-stack-sm,.frm-h-stack-xs,.frm-h-stack{display:flex !important;align-items:center}.frm-h-stack-sm>input[type=checkbox],.frm-h-stack-xs>input[type=checkbox],.frm-h-stack>input[type=checkbox],.frm-h-stack-sm>input[type=radio],.frm-h-stack-xs>input[type=radio],.frm-h-stack>input[type=radio]{margin:0 !important}.frm-h-stack{gap:var(--gap-2xs)}.frm-h-stack-xs{gap:var(--gap-xs)}.frm-h-stack-sm{gap:var(--gap-sm)}.frm-transition-ease{transition:all .2s ease}.frm_invisible{visibility:hidden;transition:all .2s ease}.frm_disabled{opacity:.5;cursor:default;pointer-events:none}.frm_disabled .frm-show-inline-modal{pointer-events:none !important}.frm_no_float{float:none}.frm-text-right{text-align:right}.frm-border-b{border-bottom:1px solid var(--grey-300)}.frm-no-border{border:none !important}.frm-hr{display:block;height:1px;background-color:var(--grey-200);margin:var(--gap-xs) 0}.frm-opacity-100{opacity:1}.frm-on-bottom{z-index:-1}.frm-rotate-90{transform:rotate(90deg)}.frm-cursor-pointer{cursor:pointer}.frm-align-baseline{vertical-align:baseline !important}.frm-fields p>label.frm_hidden,#wpbody-content label.frm_hidden,.frm-lookup-modal .dismiss,.frm-right-panel .inside a.frm_hidden,#form_global_settings .frm_hidden,ul.frm_form_nav>li.frm_hidden,a.frm_hidden,.button.frm_hidden,.wp-core-ui .button.frm_hidden{display:none}.postbox .inside>p.frm_no_bottom_margin:last-child{margin-bottom:0 !important}.frm_no_section_fields.frm_block{display:block}.actions.frm_visible_overflow{overflow:visible !important}.frm_full_opacity,.frm_submit .frm_full_opacity,.frm_submit .frm-opacity-100{opacity:1}.frm-dropdown-menu.frm-on-top{z-index:99999}.frm-vertical-line{display:inline-block;width:1px;height:12px;background-color:var(--grey-300)}.frm-admin-full-screen #adminmenumain,.frm-admin-full-screen #wpadminbar,.frm-admin-full-screen #adminmenuback,.frm-admin-full-screen #adminmenuwrap,.frm-admin-full-screen #wpfooter{display:none}.frm-admin-full-screen #wpcontent,.frm-admin-full-screen.auto-fold #wpcontent{margin:0;padding:0}.frm-admin-full-screen.appearance_page_starter-templates #wpbody-content{padding:0}.frm_forms.with_frm_style{max-width:100%}.post-type-frm_display .wrap>.subsubsub,.post-type-frm_display .wrap>.icl_subsubsub,.frm_form_settings>p{margin:6px var(--gap-md);padding:0}.frm-entry-container{margin:0 40px 40px;padding:0}#form_reports_page .frm-inner-content{width:calc(100% - 40px);max-width:900px;margin:20px auto;padding:20px}.frm_inner_field_container>.frm_form_fields{clear:both}.post-type-frm_display h2,.frm_wrap h2{margin-top:0 !important;font-size:var(--text-lg);line-height:var(--leading)}.post-type-frm_display .wrap>h2:first-child,.frm_wrap .wrap>h2:first-child{padding-top:0;margin-top:0 !important;font-size:var(--text-lg)}#frm_form_editor_container{position:relative;margin-top:28px}.form-field p{background:none;border:none}.form-field label.frm_primary_label{display:block;float:none;width:auto}#frm_view_editor_left label,#frm_view_editor_left .frm_primary_label,.frm-dialog .frm-sub-label,.frm-dialog label,.dropdown .frm_primary_label,.accordion-container label,.frm-fields td>label,.frm-fields td>div>label,.frm_form_field>label:first-child,.frm-fields p>label,.frm_on_submit_type>label,.post-type-frm_display .frm_form_field>label,#new_fields .frm_primary_label,#form_global_settings .frm_primary_label,#frm_form_editor_container .frm_primary_label,#permissions_settings_settings .frm_primary_label{color:var(--grey-700);margin:0 0 6px;padding:0;width:auto;font-size:var(--text-sm);display:block;line-height:var(--leading)}#frm_form_editor_container #frm-show-fields .frm_primary_label{min-height:21px}.frm-fields td input+label{display:inline}#frm_form_editor_container .edit_field_type_end_divider .frm_primary_label,#frm_form_editor_container .edit_field_type_break .frm_primary_label{display:none}form .frm_primary_label input{font-size:12px}.with_frm_style form .form-field{margin-bottom:20px}#frm_builder_page .with_frm_style form .frm_combo_inputs_container>.form-field{margin-bottom:0}.frm_description,.with_frm_style form div.description,.frm_error,.with_frm_style form div.description textarea{padding:0;font-size:11px}.with_frm_style .description{color:inherit}#frm_form_editor_container .divider_section_only .frm_primary_label{display:flex;align-items:center;gap:var(--gap-xs);font-size:20px}#frm_form_editor_container .divider_section_only .frm_primary_label .frm-sub-label{padding:0}.frm-token-container{position:relative;display:block;direction:ltr}.frm-token-container .frm-tokens{position:absolute;top:0;left:0;max-width:calc(100% - var(--gap-xl));display:flex;align-items:center;flex-wrap:wrap;gap:var(--gap-2xs);padding:6px var(--gap-xs);margin:0}.frm-token-container .frm-token{position:relative;display:flex;align-items:center;gap:var(--gap-xs);min-height:24px;height:auto;color:var(--grey-900);background:var(--grey-100);border-radius:4px;padding:0 var(--gap-xs);font-size:var(--text-md);margin:0;z-index:2}.frm-token-container .frm-token .frm-token-value{line-height:var(--leading);white-space:normal;word-break:break-word}.frm-token-container .frm-token .frm-token-remove{display:flex;flex-shrink:0;cursor:pointer}.frm-token-container .frm-token .frm-token-remove .frmsvg{color:var(--grey-900);position:static;width:12px;height:12px;padding:0}.frm-token-container .frm-token .frm-token-remove:hover .frmsvg{color:var(--error-500)}.frm-token-container .frm-show-inline-modal{z-index:3 !important}.frm-token-container .frm-token-proxy-input{position:relative;z-index:1;padding-right:var(--gap-xl) !important}form .form-field.frm_field_loading{margin-bottom:0;min-height:0;padding:0;text-align:center}.frm_sorting>.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:10px}.frm_sorting>.frm_field_loading~.frm_field_loading .frm_visible_spinner.frm-wait{margin-bottom:0;display:none}.frm_description,.with_frm_style form div.description,.frm_error{margin:0}.frm_error{color:#f04438}form .frm_blank_field input,form .frm_blank_field textarea,form .frm_blank_field select,form .frm_blank_field .frm-g-recaptcha iframe,form .frm_blank_field .g-recaptcha iframe{border-color:#f04438}form .frm_blank_field label{color:#f04438}.frm_required{color:#f04438}.with_frm_style .wp-editor-container textarea,.postbox .wp-editor-container textarea,.frm_remove_border{border:none}.with_frm_style .mceIframeContainer,.postbox .mceIframeContainer{background-color:#fff}.frm_pro_license_msg{clear:left;margin-top:10px}.frm-license-input{position:relative}.frm-license-input span{font-size:var(--text-sm)}.frm-license-input .frmsvg{width:20px;height:20px;margin-left:5px;vertical-align:text-top}.frm-license-input .frmsvg,.frm-license-input span,.frm-license-input i{color:#00831a}.upgrade_to_pro{padding:10px 25px 25px;max-width:700px;margin:20px auto !important}.upgrade_to_pro .error{display:none}.toplevel_page_formidable #wpbody-content>.error{margin:1px;padding:5px 12px}.frm_error_style,.frm_warning_style,.frm_note_style2,.frm_note_style,.frm_message,#post-body-content .frm_updated_message,div.frm_updated_message{border-radius:var(--small-radius);background-color:#d5f2dc;color:#1e561f;padding:var(--gap-sm) var(--gap-md);font-size:var(--text-sm);margin:var(--gap-sm) 0;text-align:left}.frm_note_style2{background:linear-gradient(90deg, #e9effa, #fcf6fe) padding-box,linear-gradient(90deg, #1961D5, #E8ABEF) border-box;border:1px solid rgba(0,0,0,0)}#frm_top_bar+.wrap>.frm_updated_message,#frm_top_bar+.wrap>.frm_warning_style{display:inline-block;width:100%;box-sizing:border-box}#post-body-content>.frm_updated_message{margin:5px 65px}#form_global_settings #post-body-content>.frm_updated_message,#form_global_settings #post-body-content>.frm_warning_style{margin:5px 25px}.frm_error_style{color:#973937;background-color:#ebcccc;clear:both}.frm_error_style a{text-decoration:underline;font-weight:600}.frm_error_style svg{opacity:.7}.frm_warning_style{color:#7a4d05;background-color:#fff2d2}.frm_warning_heading{font-weight:700;margin-bottom:4px}.frm_warning_style{position:relative;padding-right:calc(var(--gap-md) + 15px)}body.rtl .frm_warning_style{padding-right:var(--gap-md);padding-left:calc(var(--gap-md) + 15px)}.frm-warning-dismiss{position:absolute;top:10px;right:10px;display:flex;cursor:pointer;transition:opacity .2s ease-out}body.rtl .frm-warning-dismiss{left:10px;right:auto}.frm-warning-dismiss:hover{opacity:.8}.frm-warning-dismiss.frmsvg,.frm-warning-dismiss.frmsvg svg{width:15px;height:15px}.frm_note_style{background:rgba(188,224,253,.23);color:var(--grey-700)}.frm-banner-alert{text-align:left;margin:0;border-radius:0;padding:10px 0 10px 40px}.frm-banner-alert a{color:var(--primary-500);font-weight:400;text-decoration:none}.frm_updated_message ul,.frm_updated_message li,.frm_warning_style ul,.frm_warning_style li,.frm_error_style ul,.frm_error_style li{margin:0}.frm-inline-message{border:1px solid var(--primary-700);border-radius:var(--small-radius);color:var(--primary-700);background:#fff;text-align:center;padding:20px;font-size:var(--text-sm);line-height:var(--leading)}.frm-inline-message a{text-decoration:underline;font-weight:600;color:var(--primary-700)}.frm_pro_heading span{margin-top:10px}.frm_pro_heading .alignright{text-align:right}.frm-yes{color:var(--green);font-size:var(--text-xl)}.frm-nope{color:var(--grey-400);font-size:var(--text-xl)}.upgrade_to_pro a{color:var(--orange)}.upgrade_to_pro table .frmsvg{height:var(--text-xl);width:var(--text-xl)}.upgrade_to_pro table.widefat{background-color:#fff;border-collapse:collapse}.frm-white-body .upgrade_to_pro table th,.upgrade_to_pro table td{padding:10px 15px;border:1px solid var(--grey-300);line-height:var(--leading);font-size:var(--text-sm)}.upgrade_to_pro table th.frmcenter{text-align:center}.widefat th.frm_table_break{background-color:var(--sidebar-color)}h2.frm-h2+.howto{color:var(--medium-grey);max-width:850px;margin:5px 0 20px}.frm-card{width:100%;border-radius:10px;border:1px solid var(--grey-300);opacity:1;transition:opacity 1s}.frm-card-box{max-width:524px;background-color:#fff;border-radius:var(--medium-radius);padding:var(--gap-xl);border:1px solid var(--grey-200);box-shadow:var(--box-shadow-md)}.frm-card-box.frm-has-progress-bar{position:relative;overflow:hidden;border-radius:var(--medium-radius)}.frm-card-box-progress-bar{position:absolute;top:0;left:0;right:0;height:var(--gap-xs);background-color:var(--primary-25)}.frm-card-box-progress-bar>span{position:absolute;top:0;left:0;bottom:0;width:33%;background-color:var(--primary-500)}.frm-card-box-header{display:flex;justify-content:center;margin-bottom:var(--gap-sm)}.frm-card-box.frm-has-progress-bar .frm-card-box-header{margin-top:var(--gap-xs)}.frm-card-box-content>:last-child{margin-bottom:0}.frm-card-box-footer{display:flex;justify-content:end;gap:var(--gap-sm);margin-top:var(--gap-lg)}.frm-card-box-title{font-size:var(--text-xl) !important;font-weight:600 !important;margin-bottom:var(--gap-xs)}.frm-card-box-text{font-size:var(--text-md) !important;color:var(--grey-600) !important;margin-top:0 !important}.frm-fade{opacity:0;transition:all 1s}.frm-addons .frm-card.frm-addon-not-installed{position:relative}.frm-addons .plugin-card-top{min-height:155px;padding-top:var(--gap-lg);overflow:hidden}.frm-addons .plugin-card-top h2{margin-top:0;font-weight:400}.frm-template-row p,.frm-addons .plugin-card-top p{opacity:.8}.frm-addons .plugin-card-top>:not(p):not(h2){display:none}.frm-addons .plugin-card-bottom{padding:5px 20px 20px;text-align:center;background:rgba(0,0,0,0);border-top:none}.frm-addons .plugin-card-bottom,.frm-addons .plugin-card-bottom .button{font-size:15px}.frm-addons .button,.frm-addons .frm-button-tertiary{float:right}.frm-addons .addon-status{float:left;padding-top:4px}.frm-addon-not-installed .frm-activate-addon,.frm-addon-not-installed .frm-deactivate-addon,.frm-addon-not-installed .frm-uninstall-addon,.frm-addon-installed .frm-install-addon,.frm-addon-installed .frm-deactivate-addon,.frm-addon-active .frm-activate-addon,.frm-addon-active .frm-install-addon,.frm-addon-active .frm-uninstall-addon,.plugin-card-pro.frm-addon-active .button,.plugin-card-pro.frm-addon-active .frm-button-tertiary{display:none !important}.frm-save-and-reload-options{margin-top:10px;font-size:13px}.frm-save-and-reload,.frm-save-and-reload+.frm-button-secondary{visibility:visible !important}.addon-status-label{opacity:.7}.frm-addon-active .addon-status-label{color:var(--green);opacity:1}.frm-addon-error{position:absolute;top:55px;left:10px;right:10px;font-weight:700;text-align:center}.frm-new-template.plugin-card-bottom{overflow:visible}#frm-new-template p:first-child{margin-top:0}.frm-admin-page-formidableedit #wpbody-content>*:not(.frm-review-notice):not(.frm_previous_install):not(.frm-banner-alert):not(#frm-svg-icons-pack),#wpbody-content>.updated,#wpbody-content>#update-nag,#wpbody-content>.update-nag,#wpbody-content>.notice,#wpbody-content>.error:not(.frm_previous_install),.frm-white-body .updated,.frm-white-body .notice,.frm_wrap>.wrap>.notice,.frm-white-body .error:not(.frm_previous_install){display:none}.frm-admin-page-formidableedit #frm_builder_page{display:block !important}.frm-white-body .updated,.frm-white-body .error{margin:0;padding:10px 20px}.frm-modal:not(#frm-dismissable-cta) .postbox{max-height:600px;overflow:hidden;margin-bottom:0}.frm-modal .postbox .frm_modal_top,.frm-dialog .frm_common_modal .postbox>div:first-child,.frm-error-modal .frm_modal_top{padding:var(--gap-md) var(--gap-md) 0;position:relative}.frm-modal h2,.frm-modal .postbox .inside h2,.frm-modal .postbox .frm-modal-title,.frm-dialog .frm_common_modal .postbox>div:first-child>div:first-child,.frm-error-modal .frm-modal-title{display:inline-block;font-size:var(--text-lg);color:var(--grey-900);font-weight:600;margin:0;padding:0}.frm-modal h3{font-weight:500}.frm-inline-modal>a.dismiss,.frm-modal .postbox>a.dismiss,.frm-modal .postbox .frm-modal-title+div:last-child,.frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{position:absolute;top:19px;right:19px;display:flex;z-index:2}body.rtl .frm-inline-modal>a.dismiss,body.rtl .frm-modal .postbox>a.dismiss,body.rtl .frm-modal .postbox .frm-modal-title+div:last-child,body.rtl .frm-dialog .frm_common_modal .postbox>div:first-child>div:last-child{right:unset;left:30px}.frm-info-modal .postbox>a.dismiss,.frm-inline-modal>a.dismiss{right:13px;top:13px}.frm-modal .postbox .frm-modal-title+div:last-child a,.frm-modal a.dismiss .frmsvg,.frm_common_modal .frm_modal_top a .frmsvg{color:var(--grey-500)}.frm-modal .postbox .frm-modal-title+div:last-child a:hover,.frm-modal a.dismiss .frmsvg:hover,.frm_common_modal .frm_modal_top a .frmsvg:hover{color:var(--grey-700)}.frm-modal .frm_modal_content>div.inside,.frm_common_modal .frm_modal_content>div.inside{padding:var(--gap-md);margin:0;font-size:var(--text-sm);color:var(--grey-700)}.frm-modal p{color:var(--grey-900)}.frm_common_modal .postbox{display:flex;flex-direction:column}.frm-modal .postbox>div.inside .cta-inside{overflow-y:auto;height:auto}.frm_modal_footer{padding:0 var(--gap-md) var(--gap-sm);text-align:right}body.frm-body-with-open-modal{overflow-y:hidden}.frm-templates-list{margin-top:0}.frm-templates-list.frm_grid_container li{margin-bottom:0}.frm-templates-list li{vertical-align:top;position:relative;box-sizing:border-box;border-radius:6px;border:1px solid rgba(0,0,0,0);text-align:left}.frm-templates-list li:not(.frm_hidden){display:inline-block}.frm-templates-list.frm-categories-list li{width:100%}.frm-templates-list li.frm-selectable{cursor:pointer}.frm-templates-list li.frm-selectable:hover{background:var(--light-blue);border-color:rgba(65,153,253,.5)}.frm-templates-list li.frm-selectable:hover h3,.frm-templates-list li.frm-selectable:hover p{max-width:calc(100% - 65px)}.frm-templates-list .frm-featured-form{display:flex;width:100%}.frm-templates-list li .frm-featured-form{padding:7px 5px}.frm-templates-list li li>div{padding-left:0}.frm-templates-list li>div>div{vertical-align:middle}.frm-category-icon,.frm-icon-wrapper{background:var(--primary-500);border-radius:var(--small-radius);color:#fff;width:32px;height:32px;font-size:18px;box-sizing:border-box;align-self:center;justify-content:center;align-items:center;display:inline-flex}.frm-templates-list li .frm-category-icon{overflow:hidden}.frm-templates-list li h3,.frm-templates-list li p{text-align:left;margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.frm-templates-list li h3,.frm-templates-list .frm-install-template h3{font-size:var(--text-sm) !important}.frm-templates-list .frm-install-template div{text-align:left}#frm_leave_email,#frm_code_from_email{width:480px;max-width:100%}.frm-templates-list.frm-categories-list li>div>div:last-child{padding-left:0}.frm-hover-icons{position:absolute;right:0;top:17px;max-width:91px;height:100%;box-sizing:border-box;padding:0 10px 0 5px !important;border-radius:var(--small-radius);text-align:right;display:flex;gap:5px}.frm-ready-made-solution .frm-hover-icons{visibility:hidden}.frm-ready-made-solution:hover .frm-hover-icons{visibility:visible}.frm-hover-icons a{width:22px;height:22px;font-size:var(--text-md);display:inline-flex;align-items:center;justify-content:center;border-radius:50%;box-sizing:border-box;line-height:var(--leading);text-align:center}.frm-hover-icons>.frm-preview-form,.frm-hover-icons>.frm-delete-form{border:1px solid var(--primary-500)}.frm-hover-icons>.frm-create-form,.frm-ready-made-solution .frm-hover-icons a{background-color:var(--primary-500)}.frm-hover-icons>a .frmsvg{width:14px;height:14px;vertical-align:baseline}.frm-hover-icons>.frm-preview-form .frmsvg,.frm-hover-icons>.frm-delete-form .frmsvg{color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form{background-color:var(--primary-500)}.frm-hover-icons>.frm-unlock-form .frmsvg{background-color:var(--primary-500)}.frm-ready-made-solution .frmsvg{width:14px;height:14px}.frm-hover-icons .frm-create-form svg,.frm-ready-made-solution .frm-hover-icons svg{color:#fff}.frm-hover-icons .frm-create-form:hover,.frm-ready-made-solution .frm-hover-icons a:hover,.frm-hover-icons>.frm-unlock-form:hover,.frm-hover-icons>.frm-unlock-form:hover .frmsvg{background-color:var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover,.frm-hover-icons .frm-delete-form:hover{border:1px solid var(--primary-700) !important}.frm-hover-icons .frm-preview-form:hover .frmsvg,.frm-hover-icons .frm-delete-form:hover .frmsvg{color:var(--primary-700) !important}.frm-application-card h4 .frmsvg,.frm-locked-template h3 .frmsvg{height:var(--text-sm);width:var(--text-sm);vertical-align:text-top;color:var(--grey-500)}.frm-modal-back{cursor:pointer;margin-right:4px}.frm-modal-cancel{float:left}.frm-meta-tag,.frm-meta-tag:hover{padding:var(--gap-2xs) var(--gap-xs);border-radius:var(--small-radius);font-weight:600;display:inline-flex;background-color:#d9ebff;gap:2px}.frm-meta-tag.frm-grey-tag,.frm-meta-tag.frm-grey-tag:hover{background-color:var(--sidebar-hover);color:var(--grey-900)}.frm-meta-tag.frm-red-tag,.frm-meta-tag.frm-red-tag:hover{background:var(--error-100);color:var(--error-700)}.frm-meta-tag.frm-orange-tag,.frm-meta-tag.frm-orange-tag:hover{background-color:#fef7f4;color:var(--orange)}.frm-meta-tag.frm-green-tag,.frm-meta-tag.frm-green-tag:hover{background-color:var(--success-500);color:#fff}.frm-entry-status-0,.frm-meta-tag.frm-lt-green-tag,.frm-meta-tag.frm-lt-green-tag:hover{background-color:var(--success-100);color:var(--success-800)}.frm-meta-tag.frm-new-pill{background-color:var(--success-500);vertical-align:text-bottom}.frm_add_field span+.frm-meta-tag{margin-left:0}.frm-entry-status{font-weight:500}.frm-entry-status-1{color:#7a4d05;background:#fff2d2}#frm-create-footer{padding:15px 20px}li .frm-hover-icons .frm-preview-form,.frm-hover-icons .frm-unlock-form,.frm-locked-template .frm-hover-icons .frm-create-form,.frm-modal-back{display:none}.frm-locked-template .frm-hover-icons .frm-unlock-form,li[data-preview] .frm-hover-icons .frm-preview-form{display:inline-flex}.frm-modal-back svg{color:#7f7f7f}#frm-upgrade-body-list-wrapper>div{display:inline-block;width:33.3333333333%;vertical-align:top;text-align:left;margin-bottom:10px}#frm-upgrade-body-list-wrapper ul{padding-left:40px}#frm-upgrade-body-list-wrapper ul li::before{content:"\2022";color:var(--primary-500);display:inline-block;width:1em;margin-left:-1em}.frm-embed-modal-content{padding:var(--gap-md)}.frm-embed-modal-content.frm-loading-page-options{display:flex;justify-content:center}#frm_embed_modal .frm_embed_example{background:var(--sidebar-color);border:1px solid var(--sidebar-hover);border-radius:var(--small-radius);color:var(--grey-900);font-size:var(--text-sm);padding-right:var(--gap-lg);width:100%;height:auto !important;resize:none}#frm_embed_modal textarea.frm_embed_example{padding-bottom:0}.frm-embed-modal-content>div a{position:absolute;right:0;top:0}.frm-embed-modal-content>div{position:relative;margin-bottom:var(--gap-sm)}.frm-embed-modal-content>div:last-child{margin-bottom:0}.frm-embed-modal-content svg[id^=frm_copy_embed_]{position:absolute;bottom:10px;right:10px;cursor:pointer;opacity:.5}.frm-border-info-box,.frm-embed-modal-option{border-radius:var(--small-radius);border:1px solid var(--grey-300);padding:var(--gap-sm);cursor:pointer;display:flex;gap:var(--gap-sm);font-size:var(--text-sm)}.frm-embed-modal-option+.frm-embed-modal-option{margin-top:var(--gap-sm)}.caret.rotate-270,.frm-embed-modal-option .caret{align-self:center;margin-left:auto;transform:rotate(-90deg)}#frm_embed_modal .frm_modal_footer{display:none}#frm_embed_modal.frm-on-page-2 .frm_modal_footer{display:block}.frm-embed-modal-content ul{max-height:300px;overflow-y:scroll}.frm-embed-modal-wrapper.frm-dialog{overflow:visible}#frm-bulk-modal .frm_grid_container{grid-template-columns:repeat(12, 8.33%);grid-gap:0}#frm-bulk-modal .frm8{border-right:1px solid var(--grey-300);padding:10px 20px 10px var(--gap-lg)}#frm-bulk-modal .frm4{padding:10px 0}.frm-inline-modal .howto{margin:5px 0 10px;color:var(--grey)}.frm-inline-modal .frm_code_list+.howto{margin-bottom:0}#frm_bulk_options{height:240px;width:100%;border:none;box-shadow:none;padding:0}.frm-bulk-edit-link{display:flex;align-items:center;justify-content:flex-end;gap:var(--gap-2xs);font-size:var(--text-sm);margin:12px 0 12px auto}.frm-bulk-edit-link .frm-bulk-edit-link{margin:0}.frm-small-add{font-size:var(--text-sm) !important}.frm-small-add span{color:var(--primary-500);font-size:12px;height:12px;width:12px}.frm_no_captcha_text{font-weight:700;color:#a00}.frm_image_from_url{height:50px}h1 .fa-caret-down{font-size:18px}.caret{display:inline-block;width:19px;height:9px;margin-right:-8px;vertical-align:middle}.caret,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,.frm_wrap .ui-autocomplete-input{background:rgba(0,0,0,0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M12.708 8.959 10 11.875 7.292 8.96'/%3E%3C/svg%3E") no-repeat right 8px top 50%;padding-right:var(--gap-lg) !important}.caret{padding-right:var(--gap-xs) !important;background-position-x:5px}.frm-btn-group .caret{float:right;margin-top:calc(var(--text-md)/2)}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.frm_wrap .ui-autocomplete,#frm_adv_info.frm-dropdown-menu,.frm-dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;padding-left:4px;padding-right:4px;margin:var(--gap-xs) 0 0;text-align:left;list-style:none;background:none;background-color:#fff;background-clip:padding-box;border:1px solid var(--grey-100);border-radius:.25rem;box-shadow:var(--box-shadow-lg);max-height:200px;overflow-y:auto;overflow-x:hidden;font-size:var(--text-md);width:auto;min-width:160px}.frm6 .frm-dropdown-menu{min-width:100px;max-width:99%}#frm_bs_dropdown .frm-dropdown-menu{max-width:400px}.field_type_list .frm-dropdown-menu{min-width:150px !important}#frm_field_group_controls .frm-dropdown-menu,.frm-field-action-icons .frm-dropdown-menu{min-width:180px !important}.frm-field-action-icons .frm-dropdown-toggle svg{color:#9ea9b8}.multiselect-container.frm-dropdown-menu,#search-submit .frm-dropdown-menu{min-width:200px !important}.preview .frm-dropdown-menu{min-width:230px !important}.frm-dropdown-menu.dropdown-menu-right{right:0;left:auto}.frm-dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.frm-dropdown-menu>.dropdown-item{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu .frm_dropdown_li{clear:both;font-weight:400;white-space:nowrap;text-decoration:none;border-radius:var(--small-radius)}.frm-dropdown-menu>.active>a,.frm-dropdown-menu>.active>a:hover,.frm-dropdown-menu>.active>a:focus{text-decoration:none;outline:0}.frm-select-list-item.disabled,.frm-dropdown-menu>.disabled>a,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{color:#999}.frm-select-list-item.disabled:hover,.frm-dropdown-menu>.disabled>a:hover,.frm-dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:rgba(0,0,0,0);background-image:none;cursor:not-allowed}.open>.frm-dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 10px;font-size:var(--text-xs);color:var(--grey-400)}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.dropdown-menu-right>.frm-dropdown-menu,.pull-right>.frm-dropdown-menu{right:0;left:auto}.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.navbar-fixed-bottom .dropdown .frm-dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.btn{border:1px solid #ddd;background:#fff;height:28px;line-height:var(--leading)}a.frm_option_icon::before{color:var(--primary-500);font-size:22px;width:22px;height:22px}a.frm_option_icon:focus::before,a.frm_option_icon:hover::before{color:var(--primary-700)}.frm_top_left .frm-dropdown-toggle{color:#999}.frm-card ol{margin-left:15px}.frm-dropdown-toggle{text-decoration:none}.frm-card .frm-dropdown-toggle{border:1px solid var(--grey-300);border-radius:var(--small-radius);font-size:13px;color:var(--grey-700);padding:7px 20px}.frm_actions_dropdown .frm-dropdown-menu{font-size:var(--text-sm);color:#5f6c72}.frm-dropdown-menu .frm_icon_font{vertical-align:middle;color:#5f6c72;margin-right:3px}.multiselect-container.frm-dropdown-menu{top:auto;left:auto;font-size:var(--text-sm);padding:4px;margin-bottom:3px}#post-body-content+.frm-right-panel h3.accordion-section-title{padding:7px 10px 8px 14px;font-size:var(--text-md);color:var(--grey-700)}.frm-with-line,.accordion-section-content h4{font-size:var(--text-md);font-weight:400;margin:20px -20px 10px;padding:0 20px;color:var(--grey-700);position:relative;border:none !important}.frm-with-line span,.accordion-section-content h4 span{background:#fff;padding:0 var(--gap-xs);position:relative;display:inline-block;z-index:2}.accordion-section-content h4 span{background:var(--sidebar-color)}.frm-right-panel .frm-with-line span{background:var(--sidebar-color) !important;margin-left:-4px}.frm-right-panel .frm-inline-modal .frm-with-line span{background:#fff !important}.frm-with-line::before,.accordion-section-content h4::before{content:"";display:block;position:absolute;border-bottom:1px solid var(--grey-300);left:0;width:100%;top:50%}.control-section .accordion-section-title::after,.customize-pane-child .accordion-section-title::after{top:15px}.accordion-container .frm-dropdown-menu{min-width:40px}.frm-btn-group .multiselect.dropdown-toggle{box-sizing:border-box;min-height:unset;cursor:pointer}.accordion-container .frm-dropdown-menu::before,.accordion-container .multiselect.dropdown-toggle::before{font-family:"s11-fp" !important}.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0;width:100%;max-width:250px}.multiselect-container button.multiselect-option{width:100%;text-align:left;border:none;margin-bottom:4px}.multiselect-container button.multiselect-option label{margin-left:5px}.accordion-container .multiselect-container label{padding:3px 19px 3px 7px}.frm-btn-group.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.frm-btn-group.btn-group,.frm-btn-group.btn-group-vertical{display:block}.multiselect-option label{max-width:calc(100% - 22px);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_scale{text-align:center;float:left;margin-right:10px}.frm_scale input{display:block;margin:5px}.frm_multi_fields_container{float:left}.frm_multi_fields_container,.frm_form_builder .frm_form_fields input[type=tel] .frm_form_builder .frm_form_fields input[type=range],.frm_form_builder .frm_form_fields input[type=text]{width:100%;height:auto}.frm_form_builder .frm_time_wrap .frm_time_sep{vertical-align:sub;vertical-align:-webkit-baseline-middle}.frm_form_builder input[type=range]::-webkit-slider-runnable-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-moz-range-track{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-lower{background-color:var(--blue-border)}.frm_form_builder input[type=range]::-ms-fill-upper{background-color:var(--blue-border)}.frm-embed-field-placeholder{text-align:center;height:145px;display:flex;align-items:center;justify-content:center}.frm-fake-field{display:block;height:25px;background-color:var(--light-blue);border:1px solid var(--grey-300);margin:10px 0;border-radius:var(--small-radius)}.frm-embed-message{position:absolute;background:#fff;border:1px solid var(--grey-300);color:var(--grey-700);padding:var(--gap-md);font-size:var(--text-lg);max-width:200px;min-width:50%;margin:0 var(--gap-md);overflow:hidden;text-overflow:ellipsis}.frm-summary-message{top:50%;left:50%;padding:15px 0;font-size:var(--text-md);transform:translate(-50%, -50%)}.frm-summary-learn-more{font-size:inherit !important}.frm-single-settings .frm-embed-message{width:100%;position:static;border-radius:var(--small-radius)}#new_fields input[type=text],#new_fields input[type=number],.frm_field_box .frm_form_fields>textarea,.frm_form_fields .frm_form_field>textarea,.frm_form_fields .frm_form_field>input[type=email],.frm_form_fields .frm_form_field>input[type=url],.frm_form_fields .frm_form_field>input[type=number],.frm_form_fields .frm_form_field>input[type=tel],.frm_form_fields .frm_form_field>input[type=text],.frm_form_fields .frm_form_field>input[type=range]{width:100%}.frm_form_fields textarea.wp-editor-area{width:100%;border:none}.frm_form_fields input[type=file],.frm_form_fields input[type=file]:disabled{background:rgba(0,0,0,0);border:none;box-shadow:none;width:auto}.frm_form_fields select{width:auto;max-width:100%}input[type=radio],input[type=checkbox]{width:16px;padding:0}.frm_grid_container>p,.frm_grid_container>p.frm_form_field,.frm_grid_container>div.frm_form_field,#new_fields .frm_grid_container>p{margin-top:8px;margin-bottom:8px;margin-right:0}.frm_grid_container>p>label:only-child,.frm_grid_container>p.frm_form_field>label:only-child,.frm_grid_container>div.frm_form_field>label:only-child,#new_fields .frm_grid_container>p>label:only-child{margin-bottom:0}.frm_grid_container>.frm-has-modal>p:only-child{margin-bottom:var(--gap-xs)}#new_fields div.frm_grid_container>.frm_primary_label{margin-top:8px}#new_fields .frm_primary_label+p,#new_fields .frm_primary_label+.frm6+.frm6,#new_fields .frm_primary_label+.frm6+.frm-inline-modal+.frm6{margin-top:0}.frm_catlevel_2,.frm_catlevel_3,.frm_catlevel_4,.frm_catlevel_5{margin-left:18px}.frm_wrap .frm-fields .auto_width,.frm_form_fields input.auto_width,.frm_form_fields select.auto_width,.frm_form_fields textarea.auto_width{width:auto !important}.frm_form_fields select.auto_width{min-width:60px}.frm_form_fields input:focus,.frm_form_fields select:focus,.frm_form_fields textarea:focus,.frm_focus_field input{background-color:#fff;border-color:#ddd}.frm_form_builder .frm_radio,.frm_form_builder .frm_checkbox{display:block;margin-bottom:2px}.frm_form_builder .frm_radio label,.frm_form_builder .frm_checkbox label{font-size:var(--text-sm)}.horizontal_radio .frm_radio,.horizontal_radio .frm_checkbox{margin-right:5px;display:inline-block}.frm_form_builder .frm_opt_container .frm_radio.frm_image_option label,.frm_form_builder .frm_opt_container .frm_checkbox.frm_image_option label{display:flex;align-items:center;gap:9px;white-space:normal}.frm_form_field.frm_two_col .frm_opt_container,.frm_form_field.frm_three_col .frm_opt_container,.frm_form_field.frm_four_col .frm_opt_container{display:grid;grid-template-columns:repeat(2, 1fr);grid-auto-rows:max-content;grid-gap:0 2.5%}.frm_form_field.frm_three_col .frm_opt_container{grid-template-columns:repeat(3, 1fr)}.frm_form_field.frm_four_col .frm_opt_container{grid-template-columns:repeat(4, 1fr)}.frm_form_field.frm_two_col .frm_radio,.frm_form_field.frm_two_col .frm_checkbox,.frm_form_field.frm_three_col .frm_radio,.frm_form_field.frm_three_col .frm_checkbox,.frm_form_field.frm_four_col .frm_radio,.frm_form_field.frm_four_col .frm_checkbox{grid-column-end:span 1}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap .with_frm_style .frm_radio input[type=radio],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_scale input[type=radio],.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{width:15px;min-width:15px;height:15px;border:1px solid var(--grey-300);box-shadow:var(--box-shadow-sm);-webkit-appearance:none}.frm_wrap input[type=radio]{border-color:var(--grey-300);box-shadow:var(--box-shadow-sm)}.frm_wrap input[type=radio]:checked::before{background-color:var(--primary-500)}.frm_wrap .with_frm_style .frm_checkbox input[type=checkbox],.frm_wrap input[type=checkbox],.frm-white-body input[type=checkbox],.field-group input[type=checkbox],.frm_checkbox input[type=checkbox]{border-radius:4px}.frm-white-body input[type=checkbox]:checked,.frm_wrap input[type=checkbox]:checked{background-color:var(--border-color-active, var(--primary-500)) !important;border-color:var(--border-color-active, var(--primary-500)) !important}.frm-white-body input[type=checkbox]:checked:focus,.frm_wrap input[type=checkbox]:checked:focus{border-color:var(--border-color-active, var(--primary-500))}.frm-white-body input[type=checkbox]:checked::before,.frm_wrap input[type=checkbox]:checked::before{content:"";display:block;width:100% !important;height:100% !important;background-image:url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6667 1.5L4.25001 7.91667L1.33334 5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A") !important;background-size:8px !important;background-repeat:no-repeat !important;background-position:center !important;margin:0}.frm_radio input[type=radio],.frm_checkbox input[type=checkbox]{margin-right:5px}.frm_inner_field_container{margin-bottom:10px}.frm_conf_inline .frm_inner_field_container,.frm_conf_inline .frm_inner_conf_container{width:49%;float:left}.frm_conf_inline .frm_inner_field_container{margin-right:2%;clear:both}.frm_inner_field_container>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>label,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>label,li.ui-state-default.selected>.frm_inner_field_container>label{max-width:calc(100% - 100px)}.frm-drag-fade{background-color:var(--lightest-grey) !important;border-radius:4px}.frm-drag-fade *{opacity:0}.frm-dragging .divider_section_only,.frm-dragging .frm_field_box{pointer-events:none}.frm_form_settings #op-popup,.frm_form_settings com-1password-op-button,.frm_conf_below .frm_conf_field_container .frm_primary_label,.frm_conf_inline .frm_inner_field_container .frm-show-click a,.frm_conf_below .frm_conf_field_container .frm-show-click a{display:none !important}.frm_conf_inline .frm_inner_field_container .frm-field-action-icons{position:absolute;right:5px}.frm_conf_below .frm_conf_field_container{margin-top:10px}.frm_calc_dec{width:50px}.frm_ext_sc{display:none}.frm_long_input{width:100% !important;box-sizing:border-box}.frmcenter{text-align:center}img.frm_help{margin-left:2px;vertical-align:middle;padding-bottom:2px}.frm_spinner.frm-wait,.frm_spinner.spinner{float:left;visibility:hidden;margin:0 10px}.frm_visible_spinner.frm-wait,.frm_visible_spinner.spinner{visibility:visible;float:none}.frm_form_action_settings .frm_spinner.frm-wait,.frm_form_action_settings .frm_spinner.spinner{visibility:visible;float:none;vertical-align:bottom}.frm_form_action_settings .frm_loading{font-size:15px;text-align:center}.frm_ajax_settings_tab .frm-wait,.frm_ajax_settings_tab .spinner{visibility:visible;float:none;margin-top:20px}.wp-core-ui .frm_loading_button.button-primary.frm-button-primary,.frm_loading_button,.frm_loading_form.frm_button_submit{position:relative !important;opacity:.8;color:rgba(0,0,0,0) !important;text-shadow:none !important}.frm_loading_button:hover,.frm_loading_button:active,.frm_loading_button:focus,.frm_loading_form.frm_button_submit:hover,.frm_loading_form.frm_button_submit:active,.frm_loading_form.frm_button_submit:focus{cursor:not-allowed;color:rgba(0,0,0,0) !important;outline:none !important;box-shadow:none}.frm-wait{margin:20px;width:20px;height:20px;position:relative;display:inline-block}#frm-show-fields .frm-wait:only-child{position:absolute;left:50px;top:30px}.frm-wait::before,.frm_loading_button::before,.frm_loading_form.frm_button_submit::before{content:"";display:inline-block;position:absolute;background:rgba(0,0,0,0);border:1px solid #fff;border-top-color:rgba(0,0,0,0);border-left-color:rgba(0,0,0,0);border-radius:50%;box-sizing:border-box;top:50%;left:50%;margin-top:-10px;margin-left:-10px;width:20px;height:20px;animation:spin 2s linear infinite}.frm-wait::before{border-bottom-color:var(--primary-700);border-right-color:var(--primary-700)}.frm_loading_button.frm-button-secondary::before{border-bottom-color:var(--primary-500);border-right-color:var(--primary-500)}input[type=submit]:focus{outline:none !important}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}label input[type=checkbox],label input[type=radio]{vertical-align:inherit}#editorcontainer #dyncontent{margin:0;width:100%;padding:6px;line-height:var(--leading);border:0 none;outline:none;box-sizing:border-box}.frm_postbox_icon{margin:-6px 0 0 -10px}.frm_form_builder a:hover{text-decoration:underline}.frm_form_builder .widget-title h4{padding:10px 15px}.frm_form_builder .widget-top a.widget-action::after{margin:7px 12px 0}.frmbutton.frm_tgateway{display:none !important}.frm_html_legend pre{display:inline}#ed_fullscreen{display:none !important}.frm_posttax_opt_list{overflow:auto;max-height:200px;background-color:#fff}.frm_posttax_opt_list p.howto{font-size:12px}.frm_border_bottom{border-bottom:1px solid var(--grey-300);margin-bottom:10px;padding-bottom:10px}.frm_posttax_opt_list .frm_border_bottom span.howto{padding-right:10px}.frm_posttax_opt_list .frm_border_bottom input{margin-right:1px}.frm_add_remove div.frm_form_field{padding-bottom:5px}.frm_field_opts_list{max-height:260px;overflow:auto}.frm_white_bg{background-color:#fff}.frm_border_light{border:solid 1px #ddd}#new_fields .form-table input[type=text],#new_fields .form-table select,.form-table .form-field input,.form-table .form-field .quicktags-toolbar input,.form-field input,.form-field .quicktags-toolbar input{width:auto}.frm_aff_link{float:right}.frm_select_box{text-align:center;font-weight:700;width:100%;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box{text-align:left;font-weight:400;font-size:inherit !important;border:none;padding:0 !important;background-color:rgba(0,0,0,0) !important}.wp-list-table input.frm_select_box:focus{outline:none;box-shadow:none}.wp-list-table .frm_no_items.frm_select_box{text-align:center;font-weight:700;width:500px;max-width:100%;font-size:inherit}#frm-options-panel{padding:0 var(--gap-sm);color:var(--grey-900);overflow:hidden}.frm-right-panel a.frm_add_logic_link,#frm-options-panel h3{font-size:var(--text-md);font-weight:500;background-color:#fff;border-radius:var(--small-radius);padding:18px var(--gap-sm);margin:2px calc(-1*var(--gap-sm));transition:background-color 200ms ease-out,box-shadow 200ms ease-out,color 200ms ease-out}.frm-right-panel a.frm_add_logic_link .frmsvg,#frm-options-panel h3 .frmsvg{width:13px;height:13px;color:var(--grey-500);transition:transform 300ms ease-in}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type),.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type),#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child{color:var(--grey-700);box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):not(:first-of-type) .frmsvg,.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed):first-of-type:first-child .frmsvg,#frm-options-panel h3:not(.frm-collapsed):not(:first-of-type) .frmsvg,#frm-options-panel h3:not(.frm-collapsed):first-of-type:first-child .frmsvg{transform:rotate(-180deg)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div,#frm-options-panel h3:not(.frm-collapsed)+div{padding-top:6px;padding-bottom:6px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container{padding-bottom:14px}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6,#frm-options-panel h3:not(.frm-collapsed)+div.frm_grid_container>p:first-child.frm6+.frm6{margin-top:var(--gap-sm)}.frm-right-panel a.frm_add_logic_link.frm-collapsed,#frm-options-panel h3.frm-collapsed{color:var(--grey-500);background-color:rgba(0,0,0,0)}.frm-right-panel a.frm_add_logic_link:hover,#frm-options-panel h3:hover{color:var(--grey-700);background-color:#fff;box-shadow:var(--box-shadow-sm)}.frm-right-panel a.frm_add_logic_link:focus-visible,#frm-options-panel h3:focus-visible{outline:1px solid var(--primary-500) !important;outline-offset:-1px}.frm-right-panel a.frm_add_logic_link:focus{outline:auto}.frm_field_key{background-color:#f7f7f7}#frm_form_editor_container #edit-slug-box{padding:0}.frm-alt-table{position:relative;width:100%;border-collapse:collapse;margin-top:.5em;font-size:15px}#form_show_entry_page .frm-alt-table:not(.frm-zebra-striping)::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff}.frm-alt-table th{width:200px}.frm-alt-table tr,.frm-alt-table tr.frm-odd{background-color:rgba(0,0,0,0)}.frm-alt-table tr.frm-even{background-color:var(--sidebar-color)}.frm-alt-table th,.frm-alt-table td{background-color:rgba(0,0,0,0);vertical-align:top;text-align:left;padding:20px}.frm-alt-table h3{margin-bottom:0}.form-field .frm_cb_button{height:22px;line-height:20px;margin-bottom:10px;margin-right:5px}.edit_field_type_select .frm_option_val_label{margin-left:12px}.frm_rte{background:url(../images/rte.png) no-repeat}.frm_rte .howto{margin:10px 0 46px}.subform_section{margin:25px}.subform_section,.subform_section label,.subform_section input{opacity:80}.subform_section .frm_sortable_field_opts{display:none}#frm_form_editor_container .subform_section .frm_primary_label{display:block}.subform_section.subform_break{border-top:1px dashed #ccc}.button-secondary.frm_html_field{background-color:#ededed;padding:10px 20px;line-height:inherit;width:auto;height:auto !important;border-radius:0;box-sizing:content-box}.frm_html_field_placeholder{margin-bottom:10px;text-align:center}.recaptcha_placeholder{border:1px solid #d3d3d3;width:300px}.turnstile_placeholder{width:300px}.frm_sorting .frm_rte textarea{width:653px;background:#fff;margin:1px 0 0;border:1px solid #dfdfdf;border-top:none;border-radius:0;float:none !important}.frm_full_rte textarea{width:98%;padding:0}.frm_field_box{padding:5px;min-height:20px;margin:10px 0}.frm_indent_opt,td.frm_indent_opt{padding-left:25px}.frm_charts object{background:rgba(0,0,0,0)}.frm_charts h2{height:34px}.frm_single_option.ui-sortable-placeholder,li.sortable-placeholder{border:none;margin:0;visibility:visible !important;box-shadow:2px -10px 0 2px var(--primary-500)}#frm_form_editor_container>ul>.frm_single_option.ui-sortable-placeholder,#frm_form_editor_container>ul>li.sortable-placeholder{width:calc(100% - 5px) !important;height:0 !important}#frm_form_editor_container>ul>li>ul{position:relative}#frm_form_editor_container>ul>li>ul>li.sortable-placeholder,#frm_form_editor_container ul.start_divider>li>ul>li.sortable-placeholder{position:absolute;top:20px;bottom:0}.edit_field_type_divider+li.sortable-placeholder{box-shadow:2px 5px 0 2px var(--primary-500)}.start_divider li.sortable-placeholder{box-shadow:2px -5px 0 2px var(--primary-500)}.frm-is-collapsed+.sortable-placeholder{box-shadow:2px 15px 0 2px var(--primary-500)}.frm_single_option.ui-sortable-placeholder{box-shadow:0 0 1px 1px var(--primary-500)}.frm_sorting>li.edit_field_type_end_divider:first-child,.frm-show-click,li.ui-state-default.edit_field_type_divider .frm-show-click{display:none}.frm_form_field.ui-sortable-helper .frm-field-action-icons,.frm_form_field.ui-sortable-helper .frm_form_fields,.frm_form_field.ui-sortable-helper .frm_description,.frm_form_field.ui-sortable-helper .description{display:none}.frm_form_field.ui-sortable-helper .frm_primary_label,.frm_form_field.ui-sortable-helper .frm_inner_field_container{margin:0 !important}.frm-single-settings .frm-show-click{display:block !important}.frm-show-hover,.frm_single_visible_hover,li.ui-state-default.edit_field_type_divider .frm-show-hover{opacity:0;transition:opacity .15s ease-in-out}#frm-show-fields .frm-field-settings-open .frm-show-hover{opacity:1}.frm_sortable_field_opts{margin-top:5px}.frm_single_option{clear:both;margin:0 !important;padding-bottom:5px}.frm_single_option input[type=radio],.frm_single_option input[type=checkbox]{margin-top:0}.frm_single_option .frm-with-right-icon input[type=text]+.frmsvg{position:relative;right:27px;width:14px;height:14px;padding:0;margin:var(--gap-2xs) 0 0}.frm_product_price_wrapper,.frm_image_preview_wrapper,#new_fields .frm_single_option select,#new_fields .frm_single_option input[type=text]{width:calc(100% - 106px) !important;flex-grow:1}.frm-right-panel .frm_single_option a.frm_remove_tag,.frm_single_option a{padding-left:7px}.frm_single_option:hover .frm_single_visible_hover{opacity:100}.frm_single_option .frm-drag{font-size:23px;width:24px;height:24px;margin-left:-6px;margin-right:var(--gap-xs);color:var(--grey-500)}.frm_single_option .frm-drag::before{vertical-align:middle}.frm-drag,.frm_single_option.ui-sortable-helper{cursor:move}.frm_single_option .frm_option_key{margin-left:19px !important}.frm_option_key input[type=text]{margin-top:var(--gap-xs) !important;margin-left:11px !important}.frm_option_key input[type=checkbox]+input[type=text],.frm_option_key input[type=radio]+input[type=text]{margin-left:30px !important}li.ui-state-default.selected .frm-show-click,li.ui-state-default.selected.edit_field_type_divider .frm-show-click{display:inline;vertical-align:top}.frm_field_box:not(.edit_field_type_divider):hover>.frm_inner_field_container>.frm-show-hover,.frm_field_box .divider_section_only:hover>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected>.frm_inner_field_container>.frm-show-hover,li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{opacity:100}li.frm_field_box>ul.frm_grid_container{position:relative}.frm_sorting span.ui-icon{width:16px}body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) .frm_image_options .frm_image_option_container{--field-border-width: 1px;--border-color: var(--grey-300);--border-color-active: var(--primary-500);--border-radius: var(--small-radius)}#form_show_entry_page .frm_file_link,#form_show_entry_page .frm_image_option_container{display:inline-flex;flex-wrap:nowrap;flex-direction:column;text-align:center;align-items:center;width:150px;margin-right:10px;margin-bottom:10px}#form_show_entry_page .frm_image_option_container img{width:150px;height:150px;object-fit:cover}#form_show_entry_page .frm_file_link img{max-width:150px;height:auto}#form_show_entry_page .frm_file_link~br{display:none}#form_show_entry_page .frm_upload_label{padding:10px}#form_show_entry_page.frm_wrap .postbox{overflow:hidden}.frm_image_option_container .frm_image_placeholder_icon svg{height:150px}.frm_list_entry_page .frm_file_link,.frm_list_entry_page .frm_image_option_container.frm_label_with_image{display:block;text-align:center}.frm_list_entry_page .frm_image_option_container img{width:75px;height:75px;object-fit:cover}.frm_list_entry_page img{max-width:100%;height:auto}.frm_image_option_container .frm_empty_url{background-color:var(--sidebar-color)}.frm_list_entry_page .frm_image_option_container .frm_text_label_for_image{display:block;padding:5px 0 10px}.frm_list_entry_page .frm_upload_label,.frm-summary-page-wrapper .frm_text_label_for_image{display:block}#frm-welcome .frm_image_options .frm_image_option_container,#form_global_settings .frm_image_options .frm_image_option_container{background:var(--sidebar-color)}#frm-welcome .frm_image_option_container svg,#form_global_settings .frm_image_option_container svg{max-width:calc(100% - 20px)}#frm-new-template .frm_image_option_container svg{height:50px;margin:10px auto 0}.frm_image_option_container{position:relative}.frm_text_label_for_image>svg{width:30px;position:absolute;top:5px;right:calc(50% - 15px)}.frm_single_option .frm_option_key{margin-top:17px}.frm_single_option .frm_option_key.frm_image_preview_wrapper{margin-top:var(--gap-xs)}.frm_image_data{margin-left:var(--gap-sm);display:flex;flex-direction:column;font-size:var(--text-sm);justify-content:space-around;min-width:0}.frm_image_styling_frame{display:flex;align-items:stretch;margin-left:36px;margin-bottom:var(--gap-xs);width:100%}.frm_image_styling_frame img{height:54px;width:54px;min-width:auto;min-height:auto;border-radius:3px;object-fit:cover;object-position:center}.frm_image_styling_frame .frm_email_attachment_icon img{height:auto;width:auto;max-width:54px}.frm_image_preview_title{color:var(--grey-500);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0;flex:1 1 auto}.frm_wrap .frm_choose_image_box{cursor:pointer;color:var(--primary-500);background-color:#fff;margin-left:32px;text-align:center;width:100%}.frm-type-ranking .frm_option_key .frm_choose_image_box{margin-left:11px !important}.frm_wrap .frm_choose_image_box:hover{background:#fff}a.frm_remove_image_option,.frm_remove_image_option{color:var(--grey-400);cursor:pointer}a.frm_remove_image_option:hover .frmsvg,a.frm_remove_image_option:hover,.frm_remove_image_option:hover{color:rgba(40,47,54,.8)}.frm-form-setting-tabs{margin-top:var(--gap-sm) !important}.frm-right-panel>.postbox{background-color:rgba(0,0,0,0);border:none;box-shadow:none;margin:0}.frm-right-panel .postbox.frm_with_icons .inside,.frm-right-panel .postbox .inside,.frm-right-panel .inside{font-size:var(--text-md);padding:15px 20px 20px;color:var(--grey-700)}.frm-right-panel .misc-pub-section{padding:var(--gap-xs) 0;position:relative}.frm-right-panel .inside a,.frm-form-setting-tabs a{font-size:var(--text-md);color:var(--grey-700);padding:var(--gap-sm);display:block}.frm-form-setting-tabs a{color:var(--grey-900);padding:var(--gap-sm) var(--gap-md)}.frm-right-panel .inside a{padding:0;color:var(--primary-500);display:inline-block}.frm-right-panel .inside a:hover{color:var(--primary-700)}.frm-form-setting-tabs a:hover{background:var(--sidebar-hover);color:var(--grey-900)}.frm-right-panel .inside i,.frm-form-setting-tabs a i,.frm-form-setting-tabs a .frmsvg{margin:0 5px;display:inline-block;width:20px;height:20px;color:var(--grey-500)}.frm-form-setting-tabs a .frmsvg{margin:0}.frm-right-panel .inside a:hover i,.frm-right-panel .inside a:hover .frmsvg,.frm-form-setting-tabs a:hover .frmsvg,.frm-form-setting-tabs a:hover span{color:var(--grey-700)}.frm_settings_form .tabs-panel{padding:0 25px}#form_settings_page .tabs-panel,.frm_settings_form .tabs-panel{max-height:initial !important;min-height:50px !important}#frm_adv_info .tabs-panel{min-height:0 !important;overflow-x:hidden;padding:0;border:none;background:rgba(0,0,0,0)}select.frm_cancelnew,input.frm_enternew{width:175px}.frm_posttax_opt_list{border:1px solid var(--grey-300);padding:var(--gap-md);border-radius:var(--small-radius);margin:5px 0 5px var(--gap-md)}.frm_settings_form .wp-picker-open+.wp-picker-input-wrap,.frm-right-panel .wp-picker-open+.wp-picker-input-wrap{position:absolute;margin-left:calc((100% - 35px)*-1);margin-top:1px;width:calc(100% - 36px)}.frm_settings_form .wp-picker-container input[type=text].wp-color-picker,.frm-right-panel .wp-picker-container input[type=text].wp-color-picker{border:none;padding:5px 8px;font-family:inherit;color:var(--grey-700);font-size:var(--text-md);width:100%;line-height:var(--leading)}.frm_settings_form .wp-picker-input-wrap .wp-picker-clear,.frm-right-panel .wp-picker-input-wrap .wp-picker-clear{display:none !important}.frm_settings_form .wp-picker-holder,.frm-right-panel .wp-picker-holder{position:absolute;z-index:999}.frm_settings_form .wp-picker-input-wrap label,.frm-right-panel .wp-picker-input-wrap label{margin-bottom:0}.frm_settings_form .wp-picker-container .wp-color-result.button,.frm-right-panel .wp-picker-container .wp-color-result.button{width:100%;overflow:hidden;margin:0 !important;height:var(--h-md) !important;padding:0 0 0 var(--gap-lg) !important;border-radius:var(--small-radius);border-color:var(--grey-300)}.frm_settings_form .wp-color-result-text,.frm-right-panel .wp-color-result-text{line-height:var(--leading) !important;font-size:var(--text-md);background:#fff !important;color:var(--grey-900);padding:5px 8px;border-color:var(--grey-300);text-align:left}.frm_settings_form .color-alpha,.frm-right-panel .color-alpha{width:var(--gap-lg) !important}.frm_grid_container .wp-picker-container{width:100%;position:relative}.wp-picker-container button.wp-color-result{border:1px solid var(--grey-300) !important}.wp-picker-container .wp-picker-input-wrap input.hex.wp-color-picker{max-width:100%;position:relative}.frm_end .wp-picker-holder{margin-left:-145px}.frm_end.frm6 .wp-picker-holder{margin-left:-86px}.frm_toggle_opt{padding:0;white-space:normal;display:inline;vertical-align:middle;font-weight:400}.frm_on_label,.frm_off_label{color:var(--grey-700)}.frm_toggle{position:relative;display:inline-block;width:40px;height:var(--h-xs);vertical-align:middle}.frm_toggle_block{display:inline-flex !important;gap:var(--gap-xs);align-items:center}.frm_toggle input,.frm_toggle_block input{display:none !important}.frm_toggle_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--grey-200);transition:.4s;border-radius:30px}.frm_toggle_slider::before{box-sizing:border-box;content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%2398A2B3' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m10.063 3.938-6.126 6.124M3.938 3.938l6.124 6.124'/%3E%3C/svg%3E");position:absolute;left:2px;bottom:2px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:20px;line-height:20px;background-color:#fff;border-radius:50%;transition:.4s;box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider{background-color:var(--primary-500)}input:focus+.frm_toggle .frm_toggle_slider{box-shadow:var(--box-shadow-md)}input:checked+.frm_toggle .frm_toggle_slider::before{transform:translateX(16px);content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath stroke='%234199FD' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m4.52 7.437 1.313 1.459L9.48 5.104'/%3E%3C/svg%3E")}input[disabled]+.frm_toggle_slider,input[disabled]+.frm_toggle .frm_toggle_slider{pointer-events:none;cursor:text;opacity:.5}.frm_toggle_opt~.frm_toggle .frm_toggle_slider::before{content:"" !important}.rtl .frm_toggle_opt{padding:0 8px}.rtl .frm_toggle_slider::before{left:17px}.rtl input:checked+.frm_toggle .frm_toggle_slider::before{transform:none !important;left:1px}.frm_toggle_off,.frm_toggle_on{display:none;color:#fff;z-index:999;position:absolute;font-size:10px;line-height:20px;left:6px}.frm_toggle_off{display:inline;left:auto;right:5px;color:var(--dark-grey)}.frm_toggle_long{width:80% !important;height:28px;display:inline-block !important}.frm_toggle_long .frm_toggle_slider{background:var(--primary-700);box-shadow:0 0 0 2px var(--primary-700)}.frm_toggle_long .frm_toggle_off,.frm_toggle_long .frm_toggle_on{width:50%;text-align:center;font-size:13px;line-height:28px}.frm_toggle_long .frm_toggle_on{left:0}.frm_toggle_long .frm_toggle_off{right:0}.frm_toggle_long .frm_toggle_slider::before{width:50%;left:0;top:0;border-radius:var(--border-radius) 0 0 var(--border-radius);height:100%;background-color:#fff;color:var(--primary-color);content:"" !important}.frm_toggle_long input:checked+.frm_toggle_slider::before{transform:translateX(101%);border-radius:0 var(--border-radius) var(--border-radius) 0}input:checked+.frm_toggle_slider+.frm_toggle_on{display:inline}input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:none}.frm_toggle_long .frm_toggle_on,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on+.frm_toggle_off{display:inline;color:var(--primary-500);font-weight:400}.frm_toggle_long .frm_toggle_off,.frm_toggle_long input:checked+.frm_toggle_slider+.frm_toggle_on{color:#fff;font-weight:700}.tabs-panel{height:auto !important;min-height:260px}.tabs-panel.panel_secondary{min-height:20px;margin-top:10px;margin-left:150px}label.frm-example-icon{margin-right:20px !important;display:inline-block !important}#frm_stripe_icon{border-radius:5px}#captcha_settings .frm_primary_label{margin-top:var(--gap-sm)}.frm-long-icon-buttons{display:flex;gap:var(--gap-md)}.frm-long-icon-buttons>label{border:1px solid var(--grey-300);color:var(--grey-700);border-radius:var(--small-radius);display:flex;padding:var(--gap-sm);gap:var(--gap-sm);justify-content:center;align-items:center;width:calc(33% - var(--gap-sm));box-sizing:border-box}.frm-long-icon-buttons>label:hover{color:var(--primary-500)}.frm-long-icon-buttons input[type=radio]{display:none}.frm-long-icon-buttons input[type=radio]:checked+label{border-color:var(--primary-500);box-shadow:0 0 0 1px var(--primary-color)}.frm-long-icon-buttons label>svg{height:21px}.frm-example-icon .frmsvg,.frm-example-icon i{height:20px;width:20px;font-size:20px;color:var(--grey-700)}.frm_license_msg{margin-top:0}.frm_authorized_box .frm-show-unauthorized,.frm_unauthorized_box .frm-show-authorized{display:none}.edd_frm_status_icon.frmsvg{margin:0 5px}.edd_frm_license_row .frm_action_success .frmsvg{color:green}.edd_frm_license_row .frm_action_error .frmsvg{color:#d54e21}#form_global_settings .tabs-panel .num svg{display:none}.frm_no_items{margin:0 auto 50px;text-align:center;color:var(--grey-700);max-width:500px}.frm-subscribe{margin:var(--gap-lg) 0}.frm_inbox_count{color:#fff;border-radius:50%;display:inline-block;margin-right:8px;font-size:11px;text-align:center;min-width:18px;height:18px;margin-left:2px;vertical-align:text-bottom}#payments_settings .frm_payments_section .form-table td{padding-left:0;padding-right:0}#payments_settings .frm_payments_section .form-table{margin-top:0}#frm_authnet_general_settings>tr:first-of-type>td:first-of-type{padding-top:0}#frm_authnet_general_settings h3{margin-bottom:0}.frm_payment_settings_tab .frmsvg{height:22px}.frm_payment_settings_tab[for=frm_toggle_paypal_settings] .frmsvg{width:83px}.frm_payment_settings_tab[for=frm_toggle_authorize_net_settings] .frmsvg{width:99px}.frm_payment_settings_tab[for=frm_toggle_square_settings] .frmsvg{width:89px}.frm_payment_settings_tab[for=frm_toggle_stripe_settings] .frmsvg{width:53px}.frm-email-style{float:left;margin-right:var(--gap-md)}.frm-email-style:last-of-type{margin-right:0}.frm-email-style__card{position:relative}.frm-email-style__name{margin-top:var(--gap-xs);padding-top:var(--gap-2xs);text-align:center}.frm-email-style__name .frmsvg{vertical-align:sub}.frm-email-style__click{display:block;border-radius:12px;border:1px solid var(--grey-200);box-shadow:0px .47px .94px 0px rgba(16,24,40,.0588235294)}.frm-email-style__click:focus,.frm-email-style--selected .frm-email-style__click{border-color:var(--primary-500);outline:1px solid var(--primary-500)}.frm-email-style__click img{width:160px;display:block}.frm-email-style--disabled .frm-email-style__click:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--grey-100);opacity:.5}.frm-email-style__buttons{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;display:none;flex-direction:column;justify-content:center;align-items:center;gap:12px}.frm-email-style__button{cursor:pointer;display:block}.frm-email-style__button:disabled{cursor:not-allowed;display:none;background:var(--primary-700) !important;border-color:var(--primary-700) !important}.frm-email-style--selected .frm-email-style__button:disabled{display:block}.frm-email-style--selected .frm-email-style__button[data-action=choose]{display:none}.frm-email-style--disabled .frm-email-style__button[data-action=choose]{display:none}.frm-email-style:hover .frm-email-style__buttons,.frm-email-style__click:focus+.frm-email-style__buttons,.frm-email-style:focus-within .frm-email-style__buttons{display:flex}#frm-send-test-email,.frm-upload-image-btn,.frm-remove-image-btn,.frm-reset-colors-btn{cursor:pointer}#frm-send-test-email-modal .postbox{padding:var(--gap-sm) var(--gap-md)}#frm-send-test-email-modal .postbox *{box-sizing:border-box}#frm-send-test-email-modal .inside{margin:0;padding:0}.frm-lite .xml_opts .frm-export-xml-items{display:none}.csv_opts #frm_csv_col_sep{width:45px}#frm_advanced td.frm_left_label{width:20%;padding-right:2px}#frm_where_options select{max-width:200px}#frm_where_options select.frm_insert_where_options{width:30%}#frm_where_options select.frm_where_is_options{width:20%}#frm_where_options span.frm_where_val{width:32%;display:inline-block;position:relative}#frm_where_options span.frm_where_val .frm_tooltip_icon,#frm_where_options span.frm_where_val .frm_help{left:-4px;position:absolute}#frm_where_options span.frm_where_val.frm_hidden{display:none}#frm_where_options span.frm_where_val input,#frm_where_options span.frm_where_val select{width:90%;margin-left:10px}#frm_where_options{min-height:31px}.tabs-panel.active .tabs-panel,.frm_settings_form .tabs-panel .tabs-panel{border:none;padding:0}.frm-feature-banner{background:var(--grey-700);color:#fff;border-radius:var(--small-radius);padding:20px;margin:10px 0}.frm-feature-banner p{font-size:var(--text-sm)}.frm-feature-banner .dismiss{margin-top:-10px;margin-right:-10px}.frm-feature-banner .dismiss svg{color:#fff}.frm-feature-banner .frm-big-icon{padding-right:20px;float:left;min-height:60px}.frm-big-icon svg{height:60px;width:60px}.frm-feature-banner p{margin-top:0}.frm_98_width{width:100% !important}h2.frm-h2,.frm_form_settings h2{border-bottom:1px solid var(--grey-300);color:var(--grey-900);font-weight:400 !important;padding:9px 0 5px;margin:0}.frm_settings_form h3,.frm_form_settings h3,.frm_form_settings span.frm_add_logic_link{font-size:var(--text-md);border-top:1px solid var(--grey-300);padding-top:var(--gap-sm);margin:var(--gap-sm) 0;font-weight:400;text-transform:uppercase;color:var(--medium-grey);display:block}.frm_form_settings .howto{color:var(--grey-500);font-size:var(--text-sm);margin-top:8px}.frm_form_settings .advanced_settings .form-table{margin-top:0}.frm_form_settings td.frm_175_width{width:175px}.frm_form_settings #success_url{width:95%}.frm_wrap .ui-autocomplete{padding:3px 0;max-height:310px}.frm_wrap .ui-widget{font-family:inherit}.frm_wrap .ui-autocomplete li{padding:2px 4px;background:none;color:var(--grey-700);border:none;font-weight:400}.frm_wrap .ui-autocomplete .ui-menu-item-wrapper.ui-state-active{border:none;font-weight:inherit}.frm_select_with_label{margin:7px 0 0}#frm-insert-fields-box,#frm-conditionals{max-height:none}#frm-conditionals,#frm-adv-info-tab{display:none;max-height:355px}#frm-insert-fields-box ul.subsubsub,#frm-conditionals ul.subsubsub{float:right;margin:0}#frm-insert-fields-box ul.alignleft,#frm-conditionals ul.alignleft{margin:4px 0 0}#frm_adv_info ul.frm_code_list.frm-full-hover{clear:both;max-height:215px;overflow:auto}#frm-insert-fields-box ul.frm_code_list li.clear.frm_block{height:10px}#frm_adv_info .frm_noallow{display:none}#frm_adv_info #frm-conditionals .frm_noallow{display:block}#frm_html_tab.frm_hidden{display:none}#frm_html_tab.active{display:inline}.frm_email_reply_container select,.frm_email_reply_container input,.form-table td.frm_150_width{width:170px}#frm_notification_settings .frm_no_top_padding{padding-top:0}.frm_email_settings.frm_email_settings.widgets-holder-wrap{overflow:auto;box-shadow:none}#frm_notification_settings .widget-top .widget-action,#frm_form_editor_container .widget-top .widget-action{border:0;margin:0;padding:8px;background:0 0;cursor:pointer;outline:0}#frm_notification_settings .widget-top .widget-action{padding-top:13.5px}#frm_email_addon_menu{border:1px solid var(--grey-300);padding:var(--gap-sm);border-radius:4px;margin:var(--gap-md) 0 var(--gap-sm)}#frm_email_addon_menu .frm-search{float:right;margin:0}#frm_email_addon_menu h3.frm-no-border{clear:none;padding-top:7px}.frm_email_settings .widget .widget-top{background-color:var(--sidebar-color)}.frm_email_settings .widget .widget-top,.frm_email_settings .widget .widget-top h3{cursor:pointer !important}.frm_email_settings .widget{margin-bottom:var(--gap-sm)}.frm_form_action_settings .widget-top{box-shadow:none;border-color:var(--grey-300);border-radius:var(--small-radius);background:var(--lightest-grey);color:var(--grey-700)}.frm_form_action_settings:hover .widget-top{border-color:var(--grey)}.frm_form_action_settings.open .widget-top{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}.frm_form_action_settings.open:hover .widget-top{border-color:var(--grey-300)}.frm_form_action_settings>.widget-inside{display:none}.frm_form_action_settings.open>.widget-inside{display:block}.frm_form_action_settings .widget-inside{min-height:25px;padding:15px;border-color:var(--grey-300);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.frm_form_action_settings .widget-title h4,.frm_form_action_settings .widget-title h3{display:inline-block;border-bottom:none;padding:10px 10px 5px;font-size:var(--text-md);font-weight:500}#frm_email_addon_menu h3{margin:0 0 var(--gap-sm);clear:both}.frm_single_api_settings p>label{display:inline}.frm_form_action_icon{margin-right:5px}.frm_actions_list{margin:0;display:inline}.frm_actions_list li{float:left;width:15.6%;margin:10px .5% 15px;height:100px;text-align:center}.frm-limited-actions .frm-group-heading,.frm-limited-actions #frm-hide-groups,.frm-all-actions #frm-show-groups,.frm-limited-actions .frm-not-installed:not(.frm-search-result):not(.frm-default-show){display:none}label.frm_action_events{padding-left:15px}#frm-hide-groups,#frm-show-groups{font-size:var(--text-md);float:right}.frm_actions_list a:active,.frm_actions_list a:focus{outline:none}.frm_actions_list a{font-size:var(--text-sm);color:var(--grey-700);word-break:break-word}.frm_actions_list span.frm-outer-circle{background-color:var(--grey-100);padding:10px;text-align:center;border-radius:50%;display:block;width:30px;height:30px;margin:0 auto 15px;line-height:1}.frm_email_settings .widget-title h4{color:var(--grey-700)}.frm_disabled_action .widget-title h4{color:var(--grey)}.frm_actions_list a .frmsvg,.frm_actions_list a i{height:18px;width:18px;font-size:18px;padding:2px;color:var(--lightest-grey)}span.frm-inner-circle,.frm_email_settings .widget-title .frm_form_action_icon{background-color:var(--grey-400);border-radius:50%;display:inline-block;text-align:center;line-height:1}span.frm-inner-circle{background-color:var(--primary-700);height:22px;width:22px;padding:4px;color:#fff}.frm-inner-circle svg{fill:currentColor}.frm_email_settings .widget-title .frm_form_action_icon{height:15px;width:15px;padding:5px;color:#fff;vertical-align:middle}.frm_actions_list .frmsvg,.frm_actions_list i::before,.frm_email_settings .widget-title .frm_form_action_icon i,.frm_email_settings .widget-title .frm_form_action_icon .frmsvg{height:15px;width:15px;vertical-align:text-top}.frm_actions_list i::before{vertical-align:middle}.frm_email_settings .widget-title:hover .frm_form_action_icon{background-color:var(--grey)}span.frm-inner-circle.frm-inverse{background-color:rgba(0,0,0,0);color:var(--primary-700);padding:0;height:30px;width:100%}.frm_actions_list span.frm-inverse i,.frm_actions_list span.frm-inverse .frmsvg{color:var(--primary-700);height:30px;width:30px;font-size:30px;padding:0}.frm_actions_list i.frm-inverse::before{height:30px;width:100%;font-size:30px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse{background:#fff;padding:0;height:24px;width:24px}.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title .frm_form_action_icon.frm-inverse i::before{color:var(--grey-400);height:24px;width:24px;font-size:24px}.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse .frmsvg,.frm_email_settings .widget-title:hover .frm_form_action_icon.frm-inverse i::before{color:var(--grey-500)}.frm_email_icons{padding:10px 0 5px 6px;font-size:20px}.frm_email_icons a{margin-left:8px;color:var(--grey);opacity:0;transition:all .2s ease}.frm_email_icons a .frmsvg{color:var(--grey)}.frm_email_icons a:hover,.widget-top:hover .frm_email_icons a{opacity:1}.frm_actions_list a.frm_inactive_action{color:var(--grey)}.frm_inactive_action .frm-inner-circle,.frm_actions_list .frm_inactive_action i{opacity:.4}table td,.form-table tr td{vertical-align:top}#new_fields .form-table tr td{display:block;padding:7px 0 0}#new_fields .form-table tr td:first-child{margin:0}#new_fields .form-table tr td:last-child{margin-bottom:9px}.form-table #list-table th{text-align:center}#form_settings_page th,#form_settings_page td,.frm_settings_form td,#frm_notification_settings .frm_form_action_settings td p{padding:7px 0}#permissions_settings_settings .frm_grid_container{align-items:center}#frm_notification_settings .form-table>tbody>tr>th{width:150px;font-weight:400;padding-right:10px}#frm_notification_settings .frm_single_email_settings .form-table>tbody>tr>th{width:80px}#frm_notification_settings table tr td:first-child{padding-left:0}#frm_notification_settings table tr td:last-child{padding-right:0}#frm_notification_settings .frm_left_label{float:none;width:auto !important}.frm-fields .frm_autoresponder_rows select{width:auto}#frm_notification_settings .frm_with_left_label,#frm_notification_settings .frm_left_label+textarea,#frm_notification_settings .frm_left_label+select,#frm_notification_settings .frm_left_label+input[type=text]{width:100%}#frm_notification_settings .frm_email_buttons{padding:var(--gap-2xs);background:var(--light-blue);color:var(--primary-700);border-radius:var(--small-radius);border-color:var(--blue-border);line-height:1;height:auto;min-height:12px;font-size:var(--text-xs);box-shadow:none}p.frm_bcc_cc_container,p.frm_reply_to_container{float:right;z-index:1;position:relative}p.frm_bcc_cc_container{margin:14px 0 0}p.frm_reply_to_container{margin:-4px 0 0}.frm_email_row .frm_cancel1_icon::before{vertical-align:bottom}.frm_cc_row.frm_email_row .frm-with-right-icon,.frm_bcc_row.frm_email_row .frm-with-right-icon,.frm_reply_to_row.frm_email_row .frm-with-right-icon{width:calc(100% - 20px);display:inline-block}.frm_email_row .frm_remove_field .frm_close_icon{position:relative;fill:var(--grey-500);vertical-align:middle}.frm-inline-select,p.frm-inline-select,.frm_logic_rows .frm-collapse-me{line-height:var(--h-md) !important}.frm_logic_row{padding:var(--gap-xs) 0 0}.frm-single-settings ul.frm_sortable_field_opts{border-bottom:1px solid var(--grey-200);padding-bottom:var(--gap-xs);margin-bottom:var(--gap-xs)}.frm-single-settings .frm-add-other svg.frm_add_tag{position:relative;top:5px;margin-right:4px}.frm-single-settings .frm_single_option .frm_remove_tag::before{content:""}.frm-single-settings input[type=checkbox][readonly]{opacity:.5;pointer-events:none}.advanced_settings .frm_logic_row{margin:14px 0}.advanced_settings .frm_logic_row select,.advanced_settings .frm_logic_row input{max-width:30% !important}.frm_form_action_settings .frm_logic_row p{margin-top:0;margin-bottom:0;padding:0}#poststuff .widgets-holder-wrap .frm_form_action_settings .widget-inside{padding-bottom:0}#poststuff .frm_form_settings .widgets-holder-wrap .widget-inside{padding-left:15px;padding-right:15px}#form_global_settings h3{font-size:var(--text-sm);margin-top:25px}#form_global_settings .tabs-panel+h3{margin-top:0;border:none}#poststuff .frm_form_settings .widget-inside h3,#poststuff .frm_form_settings .advanced_settings h3,#poststuff .frm_settings_form h3,#frm_advanced .inside h3{border-top:1px solid #eee;border-bottom:none;margin:15px -15px 0;padding:8px 15px;font-size:var(--text-sm)}#poststuff .frm_form_settings h3.frm_first_h3,#poststuff h3.frm_first_h3{border:none;margin-top:0}h3.frm_add_logic_link{margin-bottom:0 !important}a.frm_add_logic_link.frm_hidden{display:none}a.frm_add_logic_link.frm_hidden+.frm_logic_rows{height:auto}.frm_icon_font{color:#a0a0a0;color:var(--grey)}.frm-fields label .frm_icon_font{font-size:inherit}.misc-pub-revisions.frm_icon_font,.misc-pub-revisions.frm_icon_font:hover{color:inherit}.postbox.frm_with_icons .inside{padding:0;margin:0}.frm_add_tag::before{content:"\e602"}.frm_remove_tag::before{content:"\e600"}.frm_logic_row .frm1>.frm_remove_tag{padding:0}.frm_tooltip_icon::before{font-size:13px;vertical-align:top}.frm_help svg,.frm_help .frmsvg{height:13px;width:13px;vertical-align:top;color:var(--grey-400)}.form-field input[type=text].frm_other_input{width:30%;margin-left:10px}.frm-add-other{text-align:right}.frm-add-other .frm_add_tag{vertical-align:20%}.frm_action_icon{margin:5px 0 0 5px}span.frm_action_icon{margin:0 4px 0 0}.frm_action_icon:active{outline:none}a.frm_action_icon:hover{text-decoration:none}.frm_action_icon.frm_error_icon::before{content:"\e608"}.frm_inactive_icon.frm_action_icon.frm_error_icon::before{content:"\e606"}.frm-field-action-icons{text-align:right;position:absolute;top:2px;right:2px;max-width:100%}.frm-field-action-icons .frm-field-id{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:80px;max-width:calc(100% - 50px);position:relative;top:2px}.frm-field-action-icons>a{font-size:var(--text-md);width:17px}.frm-field-action-icons a:hover{text-decoration:none}.frm-field-action-icons .dropdown{display:inline-block}.frm-field-action-icons>a .frmsvg{color:var(--grey-500) !important;font-size:17px;width:17px;height:17px}.frm-field-action-icons>a .frmsvg,.frm-field-action-icons>div>a .frmsvg{vertical-align:baseline}.edit_field_type_end_divider .frm-field-action-icons{display:none !important}.frm-move{cursor:grab}span.howto{display:inline}.frm_import_message{margin:15px 0;line-height:2.5}.frm_sorting .form-field .widget input[type=text],.frm_sorting .form-field .widget input[type=number],.frm_sorting .form-field .widget select,#wpcontent .frm_sorting .form-field .widget select,.frm_sorting .form-field .widget textarea{width:auto}.tagchecklist span.no_taglist{display:inline;float:none;line-height:15px;margin-right:0;font-size:inherit}.tagchecklist .frm_exclude_cat_list span{display:inline}.tagchecklist span a::before{line-height:23px;text-align:start}.frm_form_action_settings .frm_email_row .frm_tooltip_icon{position:relative;bottom:2px}.frm_no_entries_form{padding:60px 0}.frm_no_entries_form .frm_no_entries_header{font-size:20px;margin-bottom:10px}.frm_no_entries_form .frm_no_entries_text{line-height:var(--leading)}#form_entries_page #the-list .no-items{height:240px}#form_reports_page img.frm_no_reports{max-width:100%}.frm_wrap .google-visualization-table .gradient,.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-odd,.frm_wrap .google-visualization-table-tr-odd.google-visualization-table-tr-over{background:var(--lightest-grey)}.frm_wrap .google-visualization-table-tr-over{background:#fff}.frm_wrap .google-visualization-table-table th,.frm_wrap .google-visualization-table-table td{border-right-width:0;padding:10px !important}.frm_wrap .google-visualization-table-tr-head,.frm_wrap .google-visualization-table-tr-head th{white-space:pre-wrap;font-size:var(--text-md);font-weight:400 !important;text-align:left}.frm_wrap .google-visualization-table-td-number{text-align:inherit}#form_reports_page .postbox{text-align:center;float:none;display:inline-block;margin-right:2%;width:20%;min-width:175px}#form_views_page img.frm_no_views{max-width:100%}.frm_field_opts_popup{min-width:300px;background-color:#fff}.frm_field_opts_popup #wpadminbar{display:none}.frm_prepop{width:100%;list-style:none;overflow:auto;margin:0;max-height:295px}.frm_prepop li{margin:0}.frm_prepop li a{display:block;text-decoration:none;cursor:pointer;padding:5px 20px}.frm_prepop li a:hover{background:var(--sidebar-color)}#frm_form_editor_container #frm_form_key_box{width:13em;max-width:30%}#frm_form_editor_container #frm_form_desc{width:70%}#frm_form_editor_container .ui-widget-content{display:none;padding:15px}#frm_form_editor_container .ui-widget-content label{float:left;width:170px;text-align:right;padding-right:5px;clear:both}#frm_form_editor_container .ui-widget-content label.nofloat{clear:none;float:none;margin-left:10px}#frm_form_editor_container .ui-state-default{color:#333 !important}.frm_green{color:var(--green) !important}#frm_form_editor_container .ui-state-default a.frm_orange,.frm-right-panel a.frm_orange,#postbox-container-1 a.frm_orange{color:#d54e21}#styling_settings input[type=checkbox],#styling_settings input[type=radio]{border:solid 1px #bbb}#styling_settings .widget .widget-top,#frm_form_editor_container .widget .widget-top{cursor:pointer}.frm_sorting .widget,.frm_settings_page .widget{background:#fff}.frm_sorting .widget-title h4{font-weight:400}.frm_sorting .widget,#postbox-container-1 .widget,.frm-right-panel .widget,.frm_settings_page .widget{margin-bottom:0}.frm_settings_page .widget-inside{padding:0 5px 5px}.frm_sorting .widget,.widget-inside,.frm_sorting .form-field .widget{display:none}#frm-show-fields{min-height:350px;padding:0 0 35px;margin:0;position:relative}.frm-has-fields #frm-show-fields{min-height:50px}#frm_builder_page .frm-lite-credit-card-element,body.frm-admin-page-styles .frm-lite-credit-card-element{position:relative}#frm_builder_page .frm-lite-credit-card-element>div,body.frm-admin-page-styles .frm-lite-credit-card-element>div{position:absolute;top:calc(50% - 1px);transform:translateY(-50%);right:10px;color:#d0d4dd}#frm_builder_page #frm_field_group_controls{position:absolute;padding:5px;border-radius:4px 4px 0 0;text-align:right;box-sizing:border-box;right:0;top:-28px;height:28px;z-index:3}.frm-field-group-hover-target,.frm-has-open-field-group-popup,#frm_builder_page #frm_field_group_controls,.frm-selected-field-group{background:rgba(65,153,253,.04)}.frm-selected-field-group{position:relative}#frm_builder_page #frm_field_group_controls>span:first-child{margin-right:5px}#frm_builder_page #frm_field_group_controls svg{pointer-events:none}#frm_field_group_controls{visibility:hidden}.frm-field-group-hover-target #frm_field_group_controls{visibility:visible}#frm_field_group_controls .dropdown-item a span{color:var(--grey-700)}#frm_field_group_controls .dropdown-item a:hover{text-decoration:none}.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider{display:none !important}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default,.frm_sorting>li.ui-state-default,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{border:1px solid rgba(0,0,0,0);font-weight:400 !important;background-color:rgba(0,0,0,0);background-image:none;padding:5px;margin:0;box-shadow:none;display:block;text-align:inherit !important;overflow:visible;position:relative}#frm-show-fields li.frm_cancel_sort{display:none}.divider_drop{text-align:center}.divider_drop .howto .frm_icon_font{font-style:normal}.show_repeat_sec{display:none}.repeat_section .show_repeat_sec{display:inline-block;margin:5px 0 0}.repeat_section tr.show_repeat_sec{display:table-row}.repeat_format .frm_repeat_label,.repeat_formattext .frmsvg,.repeat_formattext i{display:none}.frm_button{text-decoration:none;border:1px solid #eee;padding:5px;color:#444;vertical-align:middle;box-shadow:none !important}a.frm_button:hover{text-decoration:none !important}.frm_button,.frm_button .frm_icon_font::before{font-size:13px;vertical-align:middle}.frm_button .frmsvg{width:13px;height:13px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{padding:0;margin:0}ul.start_divider{padding:8px 13px 0 8px;min-height:115px;transition:all .4s linear}.frm-section-collapsed .frm_no_section_fields,.frm-section-collapsed ul.start_divider{height:0;min-height:0 !important}.frm-section-collapsed ul.start_divider{overflow:hidden}.frm-section-collapsed .frm_no_section_fields{overflow:hidden;padding:0;opacity:0}.frm-section-collapsed .divider_section_only .frm-collapsed-label{display:inline}.frm-page-collapsed .frm_clone_icon,.frm-page-collapsed .frm_delete_field,.frm-page-collapsed .frm_clone_field,.frm-section-collapsed .frm_clone_icon{opacity:.5;cursor:not-allowed}.edit_field_type_summary .frm_more_options_li:nth-child(2){display:none !important}.edit_field_type_submit .frm_more_options_li:not(:last-child){display:none !important}.frm_no_section_fields:not(.frm_block)+ul.start_divider{padding:0;min-height:132px}.frm_sorting li.ui-state-default .divider_section_only{padding:6px;margin-top:-10px;border:2px solid rgba(0,0,0,0);border-radius:var(--small-radius);z-index:2;position:relative}.divider_section_only>.frm_inner_field_container{padding:5px 0;margin:0}.frm-collapsed-label,.divider_section_only>.frm_inner_field_container .frm_form_fields{display:none}.frm-section-collapsed .divider_section_only::after,.divider_section_only::before{content:"";display:block;padding:2px 0;line-height:1px;border-top:2px solid var(--grey-300);top:-2px;position:absolute;width:100%;transition:.5s border-color ease-in-out}.frm-section-collapsed .divider_section_only::after{top:auto;bottom:-6px}.frm-section-collapsed .divider_section_only:hover::after,li.selected.frm-section-collapsed .divider_section_only::before,li.selected.frm-section-collapsed .divider_section_only::after,.divider_section_only:hover::before,li.selected .divider_section_only::before{border-color:rgba(0,0,0,0)}.frm_sorting li.ui-state-default.edit_field_type_divider{overflow:visible;position:relative;padding:0 0 0 20px;margin:25px 0 0 -5px;border-left:1px solid var(--primary-700);transition:border .7s ease-out}.frm-section-collapsed{border-left-color:rgba(0,0,0,0) !important}.frm_sorting li.edit_field_type_end_divider,.frm_sorting .no_repeat_section li.ui-state-default.edit_field_type_end_divider:hover{margin:0 0 var(--gap-sm)}.frm-first-page .frm_prev_page{display:none}#frm_builder_page .frm_remove_form_row.frm_button,#frm_builder_page .frm_add_form_row.frm_button{border-radius:var(--small-radius);border:1px solid var(--blue-border)}#frm_builder_page .frm_remove_form_row .frmsvg,#frm_builder_page .frm_remove_form_row i::before,#frm_builder_page .frm_add_form_row .frmsvg,#frm_builder_page .frm_add_form_row i::before{color:var(--primary-700)}.frm-preview-buttons .frm_button_submit{margin:0 5px}.frm-page-break{border-top:1px dashed var(--primary-700);margin-top:var(--gap-lg);position:relative}.frm-page-break::before,.frm-page-break::after{content:"";position:absolute;background-color:#fff;border-radius:50%;border:1px solid var(--primary-700);text-rendering:auto;-webkit-font-smoothing:antialiased}.edit_field_type_divider .frm-divider-icon.frmsvg{padding:2px;position:absolute;left:-12px;color:#fff;background-color:var(--primary-700);border-radius:50%}.edit_field_type_divider .start_divider .frm-divider-icon.frmsvg{height:8px;width:8px;padding:0;bottom:-4px;left:-24.5px;color:var(--primary-700);background-color:#fff}.edit_field_type_divider.selected .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .frm-divider-icon.frmsvg{background:var(--primary-500)}.edit_field_type_divider.selected .start_divider .frm-divider-icon.frmsvg,.edit_field_type_divider:hover .start_divider .frm-divider-icon.frmsvg{background-color:#fff;color:var(--primary-500)}.frm-page-break::before,.frm-page-break::after{width:8px;height:8px;top:-6px;border-color:var(--grey)}.frm-page-break::after{right:0}#frm-fake-page .frm-page-break{border-color:var(--grey)}#frm-fake-page{padding:0 5px}.frm_sorting li.edit_field_type_divider:hover,.frm_sorting li.edit_field_type_divider.selected{border-left-color:var(--primary-500)}.frm-section-collapsed::after{border-color:rgba(0,0,0,0) !important;color:rgba(0,0,0,0)}.frm-page-break .frm-collapse-page.button{margin-left:46%;margin-top:-16px;padding:6px 12px !important}#frm-fake-page.frm-page-collapsed{margin-bottom:0}.frm-page-collapsed{position:relative;overflow:visible !important;margin-bottom:var(--gap-lg)}.frm-collapse-page .frmsvg,.frm-collapse-page .frm_arrowdown6_icon{width:var(--text-sm);height:var(--text-sm);font-size:var(--text-sm);text-align:center;margin-left:2px;color:currentColor;transition:transform 300ms ease-in-out}.frm-page-collapsed .frm-collapse-page .frmsvg{transform:rotate(180deg)}#frm-fake-page .frm_arrowdown6_icon{color:currentColor}.frm-collapsed i::before,.frm-page-collapsed .frm_arrowdown6_icon::before{content:"\e913"}.frm-collapse-section svg{fill:var(--primary-color);transition:transform .2s ease-out,fill .2s ease-out}.frm-collapse-section:hover svg{fill:var(--primary-700)}.frm-section-collapsed .frm-collapse-section svg{transform:rotate(-90deg)}.open .widget-top .widget-title-action button .frmsvg{transform:rotate(90deg)}.widget-top .widget-title-action button .frmsvg use{color:var(--grey)}.frm-collapsed+.frm-collapse-me{overflow:hidden !important}.frm-collapse-me{padding-bottom:10px}.frm-collapse-me.frm_grid_container:has(.dropdown-toggle.multiselect){position:relative;z-index:1}.frm-collapsed+div{height:0;padding:0}.frm-collapsed+div.frm-collapse-me{display:none}.frm-collapsible{display:flex;justify-content:space-between;align-items:center;font-weight:700;padding:var(--gap-xs) 0;margin:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.frm-collapsible.frm-collapsed{font-weight:400}.frm-collapsible:not(.frm-collapsed) .frmsvg{transform:rotate(-180deg)}h4.frm-collapsible{font-size:var(--text-md)}.frm-collapsible+.frm-collapse-me{padding-bottom:0}.frm-collapsible:focus-visible{outline:1px solid var(--primary-500)}.frm_sorting .divider_section_only>.frm_ipe_field_label{font-size:116%}#frm_form_editor_container .edit_field_type_break .frm_primary_label.frm_ipe_field_label.button{width:150px;text-align:center;margin-bottom:3px;display:block}tr.frm_options_heading td{padding-bottom:0}.frm_sorting .widget-inside .form-table td p,.frm_sorting .widget-inside .form-wrap label{padding:10px 0}.frm_no_fields,.frm_no_section_fields{text-align:center;position:absolute;color:var(--medium-grey);font-size:var(--text-md);box-sizing:border-box;border:1px dashed var(--grey-300);outline:2px solid rgba(0,0,0,0)}.frm-over-droppable+.frm_no_fields{border-style:solid;border-color:var(--primary-500);outline-color:var(--primary-500)}.frm_no_section_fields{display:none;margin:0;padding:20px 0 0;width:calc(100% - 20px);height:121px;transition:all .4s linear}.frm-empty-fields .frm_updated_message~.frm_no_fields{top:60px}#frm_form_editor_container:not(.frm-has-fields) #frm-show-fields>.frm_field_box:last-child{visibility:hidden}.frm-has-fields .frm_no_fields{display:none}#frm_form_editor_container:not(.frm-has-fields) #frm_drag_placeholder{display:none}#frm-form-button{display:none;margin:0 7px 25px}.frm-has-fields #frm-form-button{display:block}.frm-large-plus.frmsvg{color:var(--primary-700);height:45px;width:45px}.frm_no_section_fields p{color:var(--grey);font-size:15px}.frm_no_fields{top:0;width:calc(100% - 24px);min-height:320px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--gap-md);padding:var(--gap-md);border:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Crect width='99%25' height='99%25' fill='none' stroke='%23D0D5DD' stroke-width='1' stroke-dasharray='8,8' rx='8' ry='8' x='0.5%25' y='0.5%25' stroke-linecap='square' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");border-radius:var(--medium-radius);margin:var(--gap-sm) 12px}.frm_no_fields img{margin-left:calc(-1*var(--gap-lg))}.frm_no_fields .frm_drag_inst{font-size:20px;font-weight:600;margin:0 0 12px}.frm_no_fields p{color:var(--grey-600);font-size:var(--text-md);margin:0}.frm_product_price_wrapper{display:inline-block;vertical-align:middle}.frm_prod_type_single .frm_product_price_wrapper{width:100%}#new_fields .frm_product_price_wrapper input:first-child{width:60% !important;float:left}#new_fields .frm_product_price_wrapper input:nth-child(2){width:37% !important;float:right}li.frm_single_option{padding-bottom:var(--gap-sm);border-bottom:0}.frm_prod_type_single input[type=radio],.frm_prod_type_single .frm_drag_icon,.frm_prod_type_single .frm_sortable_field_opts li:nth-child(n+3),.frm_prod_type_single .frm_sortable_field_opts .frm_remove_tag,.frm_prod_type_single .frm_form_field:not(.frm_product_type):not(.frm_sep_val_product),.frm_prod_type_single .frm-bulk-edit-link,.frm_prod_type_user_def.frm_grid_container,.frm_prod_options_heading.frm_prod_user_def{display:none}.frm_prod_type_single .frm-ai-generate-options-modal-trigger{display:none !important}.frm_prod_type_single .frm_option_key{margin-left:0 !important}.frm_prod_type_single .frm_option_key input[type=checkbox]+input[type=text],.frm_prod_type_single .frm_option_key input[type=radio]+input[type=text]{margin-left:0 !important}.plugin-card-bottom .frm-trash{color:#a00}.frm-fields p>.frm_inline_label,.frm_inline_label{padding-left:3px;margin-right:12px;display:inline-block}.frm_left_label{clear:both;float:left;width:32% !important;margin-right:2% !important;line-height:2em}table td.frm_left_label{float:none;line-height:inherit;padding:5px 0 5px 2%}.frm_left_label.frm_alignright{padding-right:10px;text-align:right}.frm-fields .frm_left_label+textarea,.frm-fields .frm_left_label+select,.frm-fields .frm_left_label+input[type=text],.frm_with_left_label{width:66%}td.frm_left_label+td{width:66%;padding-top:0}#html_settings label{display:block}#html_settings .frm_field_html_box{width:100%}.frm-has-required .frm-required{color:var(--error-500)}ul.frm-category-tabs{margin-top:2px}.frm-category-tabs>li a,.frm-category-tabs>li a:active{outline:none;box-shadow:none;display:flex;gap:var(--gap-xs);align-items:center}.frm-category-tabs>li.active .frmsvg,.frm-category-tabs>li.active i,.frm-category-tabs>li.active span,.frm-category-tabs>li.active a{color:var(--primary-500)}.frm_wrap .manage-menus{margin-top:0;border:none;border-bottom:1px solid var(--grey-300);background:var(--lightest-grey)}.general_settings .postbox .manage-menus{border-top:none;border-left:none;border-right:none}.frm-postbox-no-h3{padding-top:10px}.frm-right-panel .ui-state-default,#postbox-container-1 .ui-state-default{color:var(--grey-900)}.no_repeat_section .frm_sorting>li.ui-state-default.edit_field_type_end_divider:hover{box-shadow:none}.frm-selected-field-group li.ui-state-default,.start_divider.frm_sorting li.ui-state-default.frm_not_divider.selected,.start_divider.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.frm_not_divider:hover,.frm_sorting li.ui-state-default.ui-sortable-helper,.frm_sorting li.ui-state-default.edit_field_type_divider .divider_section_only:hover,.frm_sorting .repeat_section li.ui-state-default.edit_field_type_end_divider:hover,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only,.frm_update_msg,.frm_sorting li.ui-state-default.frm_not_divider.selected,.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only{border-color:var(--primary-500);transition:.5s border-color ease-in-out}.frm_sorting li.ui-state-default.frm_not_divider.selected{box-shadow:0 0 1px 0 var(--primary-500)}.frm_sorting li.ui-state-default{transition:.7s box-shadow ease-in-out,.7s height linear}.frm_sorting li.ui-state-default.frm-newly-added{box-shadow:inset 0 0 2px 1px var(--blue-border)}.frm_sorting li.ui-state-default.selected.edit_field_type_divider .divider_section_only .frm-show-hover{visibility:visible !important;display:inline !important}.edit_field_type_end_divider>label{display:none !important}.frm_email_actions.feature-filter{font-weight:700;border:1px solid #dfdfdf;background-color:#eee;padding:3px 5px 2px;font-size:var(--text-md);line-height:20px}.frm_update_msg{border-style:solid;margin:10px 0;color:#21759b;padding:8px 15px;border-radius:4px}.frm_update_msg.wrap{margin:10px 20px 0 2px}#frm-insert-fields-box .frm_update_msg{margin-right:.9em}.frm_update_msg a{font-weight:700}.widefat td{width:auto}.widefat .column-id{width:3.7em}.widefat .column-show_count{width:5em}.widefat .column-shortcode{width:9em}.toplevel_page_formidable .column-shortcode div{display:flex;gap:var(--gap-xs)}.widefat .column-entries,.widefat .column-link{width:10%;text-align:center}.widefat .column-form_key,.widefat .column-created_at{width:10%}.frm-white-body .search-box,.frm_wrap .frm-search{float:right;margin:0;clear:right}.frm-white-body .search-box,.frm-search{min-width:32%;position:relative;display:flex;gap:var(--gap-sm);align-items:center}.frm-inline-modal .frm-search,#frm_adv_info .frm-search{float:none;width:100%;clear:both;margin:var(--gap-xs) 0}.frm-button-group a{margin:0 7px !important}.frm_has_textarea .frm-with-right-icon{display:block}.frm-with-left-icon,.frm-with-right-icon{position:relative}i.frm-show-box,i.frm-show-inline-modal,.frm-with-left-icon i,.frm-with-right-icon i:not([class*=mce-]),.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,.frm-with-left-icon .frmsvg,.frm-with-right-icon .frmsvg,.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){position:absolute;padding:0 14px;pointer-events:none;left:0;color:var(--grey-400);font-size:var(--text-xs)}.frm-search>.frmsvg,.frm-search span:not(.multiselect-selected-text):not(.multiselect-native-select){padding-left:var(--gap-xs);padding-right:var(--gap-xs)}.frm-search>.frmsvg{box-sizing:unset}.frm-with-right-icon .frmsvg,.frm-with-right-icon i:not([class*=mce-]){right:0;top:-3px;left:auto;padding:0 10px 0 5px}.frm_form_settings .frm-with-right-icon .frmsvg{top:0}.frm_form_settings .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .wp-editor-container .frm-with-right-icon .frmsvg{top:auto;bottom:var(--gap-sm)}.frm_form_settings .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg,#frm_builder_page .tmce-active .wp-editor-container .frm-with-right-icon .frmsvg{bottom:var(--gap-lg)}.frm_form_settings .frm_has_textarea .frm-with-right-icon .frmsvg{top:auto;bottom:6px}.frmsvg.frm-show-box,.frmsvg.frm-show-inline-modal,i.frm-show-box,i.frm-show-inline-modal{top:auto;background-color:var(--primary-50);color:var(--primary-500);border-radius:6px;padding:var(--gap-2xs);margin:5px;margin-bottom:0;z-index:1;cursor:pointer;pointer-events:initial}.frmsvg.frm-show-box:focus,.frmsvg.frm-show-inline-modal:focus,i.frm-show-box:focus,i.frm-show-inline-modal:focus{outline:1px solid var(--primary-500)}.frm-open+.frm-inline-modal{top:-10px;margin-bottom:0}.frm-open+.frm-inline-modal.frm-modal-no-dismiss .inside>.frm-search:first-child{margin-top:var(--gap-sm)}.frm_grid_container>.frm-open+.frm-inline-modal{top:-4px}.frm_grid_container>.frm-open+.frm-inline-modal.frm-modal-no-dismiss{top:0 !important}.frm-with-left-icon input{padding-left:37px !important}.frm_wrap .frm-with-right-icon textarea,.frm_wrap .frm-with-right-icon input,.frm_wrap .frm-with-right-icon input[type=text]{padding-right:var(--gap-md)}#frm-show-fields .frm-with-left-icon .frmsvg,#frm-show-fields .frm-with-left-icon i{padding-top:10px}.frm-search input[name=s],.frm-search .dropdown-toggle,.frm-search input.frm-search-input{color:var(--grey-800);border-color:var(--grey-300);border-radius:var(--small-radius);box-shadow:var(--box-shadow-xs)}.frm-search input[type=search],.frm-search input[type=text]{padding-left:var(--gap-lg) !important}.frm-search .dropdown-toggle{width:100%;float:none;max-width:200px;background:rgba(0,0,0,0);padding:7px;padding-left:33px !important;min-height:32px;text-align:inherit;overflow:hidden;text-overflow:ellipsis}.frm-search #search-submit a{color:var(--grey-800)}.frm-search #search-submit .caret{opacity:.7}.frm-white-body .search-box input[name=s],#wpwrap .frm-search input[type=search]{flex:1;font-size:var(--text-md);line-height:var(--text-xl);padding:var(--gap-xs)}span.multiselect-selected-text{white-space:nowrap;display:inline-block;max-width:calc(90% - var(--gap-xs));text-overflow:ellipsis;overflow:hidden}.frm-not-set input{color:var(--primary-500) !important;font-size:13px}.frm-not-set .frmsvg,.frm-not-set i{color:var(--primary-700);opacity:1}.post-type-frm_display select[name=m]+#post-query-submit,select[name=m]{display:none}.frm_shortcode_select optgroup option{margin-left:1em}.frm_shortcode_select optgroup{padding-top:5px}.frm_shortcode_select .frm_subopt{margin-left:2em}.misc-pub-section a.edit-frm_shortcode,.misc-pub-section a.edit-form-status{float:none;font-size:13px}.frm-grid{border-collapse:collapse;border:none;margin-right:10px}.frm-grid td,.frm-grid th{padding:5px;border:1px solid #000}.post-type-frm_display #poststuff #post-body.columns-2{margin-right:var(--big-sidebar)}.post-type-frm_display #post-body.columns-2 #postbox-container-1{margin-right:calc(var(--big-sidebar)*-1);width:calc(var(--big-sidebar) - 40px)}.post-type-frm_display #poststuff #post-body.columns-2 #side-sortables{width:100%}#frm_dyncontent .hndle,#frm_dyncontent .handlediv{display:none !important}.post-type-frm_display .meta-box-sortables .frm_form_nav>li>a,.post-type-frm_display .frm_form_nav .nav-tab-active{padding:0 2px 5px;line-height:1.4}.post-type-frm_display #advanced-sortables h2.hndle,.post-type-frm_display #side-sortables h2.hndle,.post-type-frm_display #normal-sortables h2.hndle{border-bottom:1px solid var(--grey-300);margin:10px 0 0 !important;padding:0 25px 8px}.post-type-frm_display #side-sortables h2.hndle{margin-top:0 !important;padding-top:10px}.post-type-frm_display #post-body-content{margin-top:var(--gap-lg)}.post-type-frm_display.edit-php #wpbody-content>.wrap{margin:0}.post-type-frm_display .postbox .hndle,.post-type-frm_display .postbox{border-color:var(--grey-300)}.post-type-frm_display #postbox-container-1 .postbox,.post-type-frm_display #postbox-container-2 .postbox{border-radius:var(--small-radius);border-color:var(--grey-300);box-shadow:none}.post-type-frm_display #side-sortables .postbox{border-radius:0;border-top-width:0;margin-bottom:0}.post-type-frm_display #side-sortables .misc-pub-section{padding:15px 20px 10px}.post-type-frm_display .misc-pub-section .frmsvg,.post-type-frm_display #post-body .misc-pub-post-status::before,.post-type-frm_display #post-body #visibility::before,.post-type-frm_display .curtime #timestamp::before,.post-type-frm_display #post-body .misc-pub-revisions::before,.post-type-frm_display span.wp-media-buttons-icon::before{color:var(--grey)}.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #publishing-action,.post-type-frm_display #frm_top_bar+#poststuff #submitdiv #minor-publishing-actions,.post-type-frm_display #frm_top_bar+#poststuff #edit-slug-box,.post-type-frm_display .wrap h1.wp-heading-inline,.post-type-frm_display .wrap>.page-title-action{display:none}.post-type-frm_display #poststuff h2.nav-tab-wrapper{padding-left:10px;margin-bottom:0;padding-bottom:0}.post-type-frm_display .nav-menus-php .wrap{margin:10px 0 0}.post-type-frm_display .nav-menus-php .wrap p{padding-left:12px;padding-right:12px}.post-type-frm_display .nav-tab{display:inline-block;background-color:#f4f4f4}.post-type-frm_display .nav-tab.frm_hidden{display:none}.post-type-frm_display .nav-tab:hover{background-color:#e4e4e4}.frm_order_row,.frm_where_row{margin-bottom:7px;line-height:30px}.frm-single-settings .frm_prod_field_opt_cont{margin-top:initial;margin-bottom:20px}select.texture{display:none}.post-type-frm_display #wp-content-editor-tools,#wp-content-editor-tools{background-color:rgba(0,0,0,0)}.post-type-frm_display #major-publishing-actions{border-color:var(--grey-300);background:var(--sidebar-color)}.post-type-frm_display #frm_adv_info{width:calc(var(--big-sidebar) - 40px);height:calc(100vh - 32px);overflow:hidden}.post-type-frm_display #frm_adv_info:not(.frm_fixed){top:0 !important}.post-type-frm_display #frm_adv_info.frm_fixed{position:fixed;z-index:9999;top:32px}.post-type-frm_display #frm_adv_info ul.frm_code_list.frm-full-hover{max-height:calc(100vh - 180px)}.frm_col_one{margin-right:4%;clear:both}ul .frm_col_one{float:left}ul .frm_col_two{float:right}ul.frm_two_col{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--gap-sm)}.frm_two_col li{margin-bottom:0}.frm-info-modal a,.frm-info-modal ul,.frm-info-modal p,.frm-info-modal,.settings-lite-cta a,.settings-lite-cta ul,.settings-lite-cta{color:var(--grey-500);font-size:var(--text-md);box-shadow:none !important}.frm-info-modal h3,.settings-lite-cta h3{font-size:17px !important}.frm-green-icons .frmsvg{color:var(--green)}.frm-info-modal .postbox .inside,.settings-lite-cta .postbox .inside{padding:var(--gap-md);margin:0}.cta-inside a{color:var(--orange)}.info-modal-inside a.frm-standard-link{color:var(--primary-500)}.info-modal-inside a.frm-standard-link:hover{color:var(--primary-700)}.frm_no_p_margin>p{margin:0}.frm_code_list a.button{display:block;text-align:center;font-size:11px;overflow:hidden}#frm-navbarDrop+.frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0;min-width:300px;max-height:256px}.frm_code_list.frm-full-hover li{margin:0}.frm-select-list-item,.frm_wrap .ui-autocomplete li>div,.multiselect-container button.multiselect-option,.frm-dropdown-menu>.dropdown-item>a,.frm-dropdown-menu>.dropdown-item>a:visited,.frm-dropdown-menu>.dropdown-item>a:link,.frm-dropdown-menu .frm_dropdown_li,.frm_code_list.frm-full-hover a{display:flex;color:var(--grey-700);padding:5px 10px;font-size:var(--text-md);gap:var(--gap-xs);align-items:center}.multiselect-container button.multiselect-option.disabled{opacity:.5}.frm_code_list.frm-full-hover a span{max-width:83px;margin-right:var(--gap-xs);margin-left:auto}.frm_code_list.frm-full-hover a{border-radius:var(--small-radius)}.frm_code_list.frm-full-hover a:not(#frm-insert-condition),.frm_code_list.frm-full-hover a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.frm_code_list.frm-full-hover a:focus span:last-child{outline:1px solid var(--primary-500);outline-offset:var(--gap-2xs)}.frm_code_list.frm-full-hover.frmcenter a{display:block}#frm-layout-classes frm-full-hover a span{max-width:45%}.frm-select-list-item.active,.frm-select-list-item:hover,.frm_wrap .ui-autocomplete li div.ui-state-active,.frm_wrap .ui-autocomplete li.ui-state-focus,.multiselect-container button.multiselect-option.active,.multiselect-container button.multiselect-option:hover,.frm-dropdown-menu>.dropdown-item>a:hover,.frm_code_list.frm-full-hover a:hover span,.frm_code_list.frm-full-hover a:hover{background:var(--primary-25);color:var(--primary-500)}.frm-select-list-item .frmsvg,.frm-dropdown-menu>.dropdown-item>a .frmsvg{opacity:.8}.frm-select-list-item:hover .frmsvg,.frm-dropdown-menu>.dropdown-item>a:hover .frmsvg{opacity:1}.frm-dropdown-menu.frm_code_list>li>a{padding:3px 15px;width:300px}#frm_edit_box_content_modal .frm-with-search,.frm-dropdown-menu .frm-with-search{padding:var(--gap-xs) 10px 0}.frm-dropdown-menu .subsubsub{padding:0 10px}.frm_grid_container{overflow:visible}.frm_code_list.frm_grid_container{grid-gap:var(--gap-xs)}.frm_code_list.frm_grid_container li{width:auto;margin:0}.frm_code_list.frm_grid_container a{display:block;font-size:var(--text-md) !important;font-weight:500;text-align:center;color:var(--primary-500);background-color:var(--light-blue);border:1px solid var(--primary-300);border-radius:var(--small-radius);padding:10px 0;box-shadow:var(--box-shadow-sm)}.frm_code_list.frm_grid_container a:hover{background-color:var(--primary-500);color:#fff}.frm_code_list.frm_grid_container a:focus-visible{outline:2px solid var(--primary-500);outline-offset:-1px}.frm-single-settings .frm_code_list.frm-full-hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{padding:0;margin:var(--gap-xs) -10px 0}.frm-single-settings .frm_code_list.frm-full-hover>li>a,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a{font-size:var(--text-md);color:var(--grey-900);padding:var(--gap-xs) 12px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span{margin:0}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:first-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:first-child{max-width:130px}.frm-single-settings .frm_code_list.frm-full-hover>li>a span:last-child,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a span:last-child{max-width:120px;margin-left:auto}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover{font-weight:500}.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover .frmsvg,.frm-single-settings .frm_code_list.frm-full-hover>li>a:hover span,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover .frmsvg,#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover>li>a:hover span{color:var(--primary-500)}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover{margin:var(--gap-xs) 0 0}#frm_builder_page #frm_adv_info .frm_code_list.frm-full-hover a .frmsvg{width:20px;height:20px}.frm_field_list #frm-insert-fields{max-height:none;font-size:var(--text-sm)}.frm_field_list #frm-insert-fields .button a{display:block;max-width:95%;overflow:hidden}#frm-insert-fields{padding:0 var(--gap-xs);overflow:hidden}#frm-insert-fields .frm-search{float:none;margin:0 0 var(--gap-md);width:auto}#frm-insert-fields li,#frm-insert-fields li a{text-decoration:none;font-weight:500;font-size:var(--text-md) !important;color:var(--grey-900)}#frm-insert-fields li.frm_show_upgrade{cursor:pointer;opacity:.5}#frm-insert-fields li span:not(.frm-new-pill){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}#frm-insert-fields li a.disabled:hover{cursor:not-allowed}#frm-insert-fields li.ui-draggable-disabled{opacity:.5}#frm-insert-fields li a:not(.disabled):hover .frmsvg,#frm-insert-fields li a:not(.disabled):hover i{color:var(--grey-600)}#frm-insert-fields li.frm_show_upgrade,#frm-insert-fields li a{text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;color:var(--grey-900) !important}#frm-insert-fields li a{display:flex !important;transition:background-color .2s ease-out,box-shadow .2s ease-out}#frm-insert-fields li a:not(.disabled):hover{background:#fff;box-shadow:var(--box-shadow-md)}#frm-insert-fields li a:focus-visible{outline:1px solid var(--primary-500)}#frm-insert-fields li.frm_show_upgrade.frm_hidden{display:none !important}#frm-insert-fields .frm-with-line{padding:12px var(--gap-md);font-weight:500;font-size:var(--text-sm)}#frm-insert-fields .frm-with-line::before{margin-left:calc(-1*var(--gap-sm));width:calc(100% + var(--gap-md))}.frm_code_list{clear:both}.frm_code_list.frm-full-hover a.frm_hidden,.frm_code_list .frmkeys{display:none}.frmsvg{fill:currentColor;width:18px;height:18px;vertical-align:middle}.frmsvg svg{pointer-events:none}.frmsvg.frm_svg40{width:40px;height:40px}.frmsvg.frm_svg24{width:24px;height:24px}.frmsvg.frm_svg20{width:20px;height:20px}.frmsvg.frm_svg15{width:15px;height:15px}.frmsvg.frm_svg14{width:14px !important;height:14px !important}.frmsvg.frm_svg13{width:13px;height:13px}.frmsvg.frm_svg12{width:12px;height:12px}.frmsvg.frm_svg9{width:9px;height:9px}input[disabled]{pointer-events:none}.frmbutton.ui-sortable-helper .frmsvg,.field_type_list li.frmbutton .frmsvg,.frmbutton.ui-sortable-helper i,.field_type_list li.frmbutton i,.frm_code_list a .frmsvg,.frm_code_list a i{color:var(--grey-500);display:inline-block;vertical-align:middle;width:var(--text-md);font-size:var(--text-md)}.field_type_list.frm_grid_container{gap:10px;margin:13px 0}.field_type_list li{margin:0;padding:0}.field_type_list li.frmbutton .frmsvg{width:24px;height:24px;font-size:24px}.frm_code_list i::before{font-size:inherit}.frmbutton.ui-draggable-dragging{pointer-events:none}.frmbutton.ui-draggable-dragging a{color:var(--grey-900) !important;background:var(--grey-100);text-decoration:none;display:inline-flex !important;gap:var(--gap-xs);align-items:center;border-radius:var(--small-radius) !important;padding:11px var(--gap-md) 11px var(--gap-xs) !important;box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging a{border:1px solid var(--grey-300);box-shadow:var(--box-shadow-md)}.frmbutton.ui-draggable-dragging span{font-size:15px}#frm-show-fields .frmbutton.ui-sortable-helper i,.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:#fff !important}.frmbutton.ui-draggable-dragging i,.frmbutton.ui-draggable-dragging .frmsvg{color:var(--grey-700) !important}.frm_sorting li.ui-state-default.ui-sortable-helper,.frmbutton.ui-sortable-helper{transition:opacity .2s;opacity:1;position:fixed;z-index:99999}#frm-insert-fields .frmbutton.ui-sortable-helper a,#frm-show-fields .frmbutton.ui-sortable-helper a{min-width:100px}li.frm_noallow.button,.frm_noallow{opacity:.5}.frm_actions_list a.frm_show_upgrade.frm_inactive_action::before,li.frm_noallow.button.frm_show_upgrade{cursor:pointer}.field_type_list li.frm_noallow.button.frm_show_upgrade:hover{border-color:inherit}.frm_noallow a{color:inherit}#frm_upgrade_modal_image{max-width:200px}#frm_upgrade_modal .frm-upgrade-message img{margin-top:10px;width:100%}.frm-tab-message{max-width:600px;margin:20px auto;color:rgba(63,75,91,.8)}.frm-settings-screenshot-toolbar{min-height:39px;display:flex}.frm-settings-screenshot-toolbar .frm-minmax-icon{height:8px;width:8px;border-radius:50%;align-self:center;margin-left:10px}.frm-settings-screenshot-toolbar .frm-minmax-icon:first-of-type{margin-left:20px}.frm-settings-screenshot-toolbar img{object-fit:contain;align-self:flex-end;margin-left:25px}.frm-settings-screenshot-toolbar+div{background:#fff;padding-top:25px;border-radius:0 0 16px 16px}.frm-settings-screenshot-toolbar+div img{max-width:calc(100% - 40px)}.frm-settings-screenshot-wrapper{max-width:700px;margin:50px auto 0;box-shadow:0 4px 4px rgba(189,196,205,.25),0 12px 56px rgba(42,57,75,.25);border-radius:16px;background:#ebecf1}.frm-dialog{z-index:100;padding:0 !important;border-radius:16px;border:none;background-color:#fff;max-width:100% !important}.frm-dialog .postbox{background:rgba(0,0,0,0);box-shadow:none;border:none;line-height:var(--leading)}.frm-dialog input[type=text],.frm-dialog textarea{font-size:var(--text-md)}.frm-dialog textarea{height:75px}.frm-dialog button.frm-button-primary{margin-right:10px}.frm-dialog .frm-sub-label,.frm-sub-label{color:var(--grey);text-transform:none;padding-left:8px}h2 .frm-sub-label{font-size:var(--text-md)}.frm-views-editor-body .ui-widget-overlay,.frm-white-body .ui-widget-overlay,.toplevel_page_formidable .ui-widget-overlay,body[class*=formidable-payments] .ui-widget-overlay,body.plugins-php .ui-widget-overlay{position:fixed;width:100%;height:100%;top:0;left:0;right:0;bottom:0;background:var(--grey-500);opacity:.5;z-index:2}.frm-circled-icon{width:60px;height:60px;border-radius:50%;background-color:var(--primary-25)}.frm-circled-icon-large{width:80px;height:80px}.frm-circled-icon-green{background-color:var(--success-50)}.frm-circled-icon .frmsvg{width:21px;height:24px}.frm-circled-icon-large .frmsvg{width:24px}.frm-circled-icon .frmsvg use{color:var(--primary-500)}.frm-circled-icon-green .frmsvg use{color:var(--success-500)}.frm-border-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--grey-300);border-radius:var(--small-radius)}.frm-upgrade-message img{max-width:100%}a.frm-link-secondary{color:#c4c4c4;font-size:var(--text-sm);text-decoration:underline}.field_type_list li.button.frm_noallow,.field_type_list li.button.frm_noallow:hover,.button.frm_noallow,.button.frm_noallow:hover{color:inherit;border-color:#ccc;background:inherit}iframe#dyncontent_ifr{min-height:150px}/*! * Bootstrap v4.6.1 */.tooltip{position:absolute;display:block;margin:0;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0;z-index:9999999;pointer-events:none}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem;margin-left:0 !important}.tooltip .arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top,.bs-tooltip-auto[x-placement^=top]{padding:.4rem 0}.bs-tooltip-top .arrow,.bs-tooltip-auto[x-placement^=top] .arrow{bottom:0}.bs-tooltip-top .arrow::before,.bs-tooltip-auto[x-placement^=top] .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-right,.bs-tooltip-auto[x-placement^=right]{padding:0 .4rem}.bs-tooltip-right .arrow,.bs-tooltip-auto[x-placement^=right] .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-right .arrow::before,.bs-tooltip-auto[x-placement^=right] .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-bottom,.bs-tooltip-auto[x-placement^=bottom]{padding:.4rem 0}.bs-tooltip-bottom .arrow,.bs-tooltip-auto[x-placement^=bottom] .arrow{top:0}.bs-tooltip-bottom .arrow::before,.bs-tooltip-auto[x-placement^=bottom] .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-left,.bs-tooltip-auto[x-placement^=left]{padding:0 .4rem}.bs-tooltip-left .arrow,.bs-tooltip-auto[x-placement^=left] .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-left .arrow::before,.bs-tooltip-auto[x-placement^=left] .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.frm-dropdown-menu.show{display:block}.frm-single-settings .frm-dropdown-menu.show{background:#fff}.preview.dropdown .dropdown-menu{min-width:205px}.frm_clear{clear:both}.frm_clearfix::after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.frm_clearfix{display:block}.frm_admin_progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.frm_admin_progress_bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);transition:width .6s ease;background-color:#04a4cc}.tooltip.frm_tooltip{position:fixed;top:auto !important;bottom:0 !important;left:0 !important;max-width:none;width:100% !important;z-index:99999}.tooltip.frm_tooltip.bottom{padding:0}.frm_tooltip .tooltip-inner{max-width:none;min-height:40px !important;text-align:left;box-shadow:5px 5px 25px rgba(0,0,0,.5);padding:10px 40px;border-top-color:#ccc;background:var(--sidebar-color);color:var(--grey-700);border-radius:0;opacity:1;font-size:var(--text-sm)}#frm_custom_css_box{width:100%}.frmdates_add_blackout_date_link,.frmdates_add_exception_link,.frm_form_field.frm_scroll_box .frm_opt_container,.frm-white-body .wrap input[type=text],.frm-white-body .wrap input[type=search],.frm-white-body .wrap input[type=number],.frm-white-body .wrap select,#frm-form-templates-modal select,.frm-white-body .wrap textarea,button.frm_choose_image_box,#titlediv input[type=text],.frm-fields button.btn,.frm_wrap textarea,.frm_wrap input[type=tel],.frm_wrap input[type=text],.frm_wrap input[type=email] .frm_wrap input[type=search],.frm_wrap input[type=number],.frm_wrap input[type=date],.frm_wrap select,.wp-admin .frm_wrap select,.field-group textarea,.field-group input[type=text],.field-group select,.frm-fields .frm-input-field{outline:0;box-shadow:var(--box-shadow-xs);border-radius:var(--small-radius);padding:5px 14px;border-color:var(--grey-300);color:var(--grey-800);font-size:var(--text-md);margin:0;background-color:#fff;line-height:var(--leading)}.frm_input_with_suffix{border-radius:var(--small-radius);border:1px solid var(--grey-300);display:inline-block;padding-right:14px}.frm_input_with_suffix input{border:0 !important;padding-right:5px !important}.frm_wrap ::-webkit-datetime-edit{line-height:var(--leading)}.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) textarea:focus,.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) input:focus,.frm-white-body:not(.frm-admin-page-styles):not(.frm-admin-page-entries) select:focus,.frm_wrap input:focus,.frm_wrap select:focus,.wp-core-ui .frm_wrap select:focus,#frm-form-templates-modal select:focus,.frm-btn-group .multiselect.dropdown-toggle:focus,.frm_wrap textarea:focus{border-color:var(--primary-500) !important;box-shadow:none !important}.wp-admin .frm_fields_container textarea:focus,.wp-admin .frm_fields_container input:focus,.wp-admin .frm_fields_container select:focus{border-color:var(--primary-500);box-shadow:none}#postbox-container-2 textarea,.frm_wrap textarea,.field-group textarea{line-height:2}.frm_wrap input[type=number]{height:auto}.frm_wrap select{padding:2px}.wp-admin .frm_wrap select,#frm-form-templates-modal select{max-width:100%}.frm_form_field.frm_scroll_box .frm_opt_container{padding:10px 12px}.frm_wrap input[disabled],.frm_wrap select[disabled],.frm_wrap textarea[disabled],.frm_wrap input[readonly],.frm_wrap select[readonly],.frm_wrap textarea[readonly],.frm_wrap input::placeholder{color:var(--grey-500)}textarea[id^=frm_calc_]::placeholder{font-size:var(--text-sm);line-height:var(--leading);font-style:italic;color:var(--grey-400);padding-top:5px}.frm_wrap .frm-button-primary.frm-disabled{opacity:.5;cursor:default}#postcustomstuff table td>div{padding-top:0 !important}.wp-admin .frm_wrap .form-table select{vertical-align:top}.frm_wrap .frm_form_builder select{line-height:var(--leading);height:var(--text-md);width:100%}#postbox-container-2 select,.wp-admin .frm_wrap select,.frm_wrap .frm_form_builder select,#frm-form-templates-modal select{height:auto}.frm-white-body .tablenav select,.frm-white-body .tablenav input[type=text],.wp-admin .frm_wrap .tablenav select,.frm_wrap .tablenav input[type=date],.frm_wrap .tablenav input[type=text]{padding-top:0;padding-bottom:0;line-height:1}.frm_wrap .tablenav ::-webkit-datetime-edit{line-height:1}.frm-fields button.btn,.frm-fields textarea,.frm-fields input[type=text],.frm-fields select,.field-group textarea,.field-group input[type=text],.field-group select,.accordion-container input.hex,.frm-fields .frm-input-field{width:100%;outline:0}.frm-fields button.btn{height:var(--h-md);text-align:inherit}.global-font .field-group input[type=text]{width:auto}.wp-core-ui .frm_grey.frm-button-primary.disabled,.wp-core-ui .frm_grey.frm-button-primary,#frm-welcome .frm_grey{opacity:.5;background:#f6f6f6 !important;border-color:#ddd !important;color:#9fa5aa !important}.windows::-webkit-scrollbar,.windows ::-webkit-scrollbar{width:7px;background:rgba(0,0,0,0)}.windows::-webkit-scrollbar-thumb,.windows ::-webkit-scrollbar-thumb{background:var(--grey-300);-webkit-border-radius:var(--border-radius);-webkit-box-shadow:none}.windows::-webkit-scrollbar-corner,.windows ::-webkit-scrollbar-corner{background:rgba(0,0,0,0)}.frm-scrollbar-wrapper,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list,#frm_builder_page #frm_adv_info .frm_code_list,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div,.frm-single-settings .frm_field_opts_list{overflow-x:hidden;overflow-y:auto !important;-ms-overflow-style:none;scrollbar-color:rgba(0,0,0,0) rgba(0,0,0,0);scrollbar-width:thin}.frm-scrollbar-wrapper:hover,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover,#frm_builder_page #frm_adv_info .frm_code_list:hover,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div:hover,.frm-single-settings .frm_field_opts_list:hover{scrollbar-color:var(--grey-300) rgba(0,0,0,0)}.frm-scrollbar-wrapper:hover::-webkit-scrollbar-thumb,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list:hover::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info .frm_code_list:hover::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div:hover::-webkit-scrollbar-thumb,.frm-single-settings .frm_field_opts_list:hover::-webkit-scrollbar-thumb{background:var(--grey-300)}.frm-scrollbar-wrapper::-webkit-scrollbar,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar{width:3px}.frm-scrollbar-wrapper::-webkit-scrollbar-track,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-track,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-track,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-track,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-track{background:rgba(0,0,0,0);border-radius:100vw}.frm-scrollbar-wrapper::-webkit-scrollbar-thumb,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-thumb,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb{background:rgba(0,0,0,0);border-radius:100vw}.frm-scrollbar-wrapper::-webkit-scrollbar-thumb:hover,.frm-single-settings .frm_code_list.frm-full-hover.frm-short-list::-webkit-scrollbar-thumb:hover,#frm_builder_page #frm_adv_info .frm_code_list::-webkit-scrollbar-thumb:hover,#frm_builder_page #frm_adv_info #taxonomy-linkcategory>div::-webkit-scrollbar-thumb:hover,.frm-single-settings .frm_field_opts_list::-webkit-scrollbar-thumb:hover{background:var(--grey-300)}.rtl h3{font-weight:inherit !important}.rtl.js .accordion-section-title::after{left:10px;right:auto}.rtl #frm_top_bar #frm_bs_dropdown{padding-left:15px}.rtl .frm-full-close,.rtl .frm_wrap .columns-2 .frm-right-panel+div,.rtl .frm-right-panel{border-left-width:0;border-right:1px solid var(--grey-300)}.rtl .frm-full-close{padding-left:0;padding-right:var(--gap-md)}.rtl .frm-text-right{text-align:left}.rtl .frm_wrap #frm_adv_info ul.category-tabs li:first-child{border-left-width:1px}.rtl .frm-dropdown-menu{text-align:right}.rtl .frm_actions_dropdown .frm_icon_font{float:right;margin-right:0;margin-left:3px}.rtl #frm-insert-fields-box,.rtl #frm-conditionals{padding-right:.9em}.rtl #html_settings .frm_field_html_box{margin-right:0}.rtl .frm_list_entry_page h2{float:right}.rtl .frm_scale{float:right;margin-left:10px;margin-right:0}.rtl .frm-page-break .frm-collapse-page.button{margin-left:0;margin-right:46%}.rtl .frm-field-action-icons{right:unset;left:2px}.rtl .frm_has_shortcodes>i{right:auto;left:5px}.rtl p.frm_reply_to_container,.rtl p.frm_bcc_cc_container{float:left}.rtl .frm-with-right-icon:not(.frm-token-container) .frmsvg{right:auto;left:0}.rtl .frm-inline-modal>a.dismiss{left:13px;right:auto}.rtl.wp-admin .frm_wrap select{padding-left:var(--gap-lg) !important;padding-right:5px !important;background-position:left 11px top 55%}.rtl .frm_code_list.frm-full-hover a span{margin-left:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:first-child{margin-left:unset;margin-right:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-navs ul li:last-child{margin-right:unset;margin-left:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline{left:unset !important;right:0}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-first{right:var(--gap-xs)}.rtl .frm-style-tabs-wrapper .frm-tabs-active-underline.frm-last{right:calc(-1*var(--gap-xs))}.rtl .frm-unit-input .frm-input-group-suffix{right:unset;left:1px;padding-right:unset;padding-left:var(--gap-xs)}.rtl .frm-unit-input .frm-input-group-suffix select{text-align:left;background-position:left 0 top 50%;padding-left:21px !important}span.clear{display:block}.clearfix::after{content:".";display:block;height:0;clear:both;visibility:hidden}.clearfix{display:inline-block}.frm_form_fields .clear{height:auto}* html .clearfix{height:1%}.clearfix{display:block}#frm_small_device_message_container{display:none}@media only screen and (max-width: 1200px){.frm-addons{grid-template-columns:1fr 1fr}#frm_top_bar h1{min-width:0}}@media only screen and (max-width: 1050px){.frm-white-body,.frm_wrap{--biggest-sidebar: 390px}#form_settings_page .columns-2{margin:0}.frm_actions_list{margin-left:0}#frm_bs_dropdown .frm_bstooltip{display:none !important}}@media only screen and (max-width: 960px){.frm-white-body,.frm_wrap{--gap-sm: 8px;--gap-md: 16px;--gap-2xl: 24px}.frm-settings-panel{--gap-sm: 16px;--gap-md: 24px;--gap-2xl: 32px}.auto-fold #adminmenuwrap{width:36px}.frm_wrap #postbox-container-1 #frm_adv_info{min-width:220px}p.howto{display:inline-block}.auto-fold.frm-admin-page-styles:not(.frm-full-screen) .frm_page_container,.auto-fold:not(.frm-full-screen) .frm_wrap .frm_page_container{left:36px}}@media only screen and (max-width: 850px){.frm-white-body,.frm_wrap{--biggest-sidebar: 350px;--big-sidebar: 350px}.frm_col_one{clear:none}.frm-fields p>.frm_inline_label,.frm_inline_label{display:block;margin:5px 0}#frm_top_bar h1{width:auto;max-width:200px}#frm-publishing{width:auto}#frm_form_editor_container,.frm-entry-container{margin:0 20px}.frm_wrap .frm-search{float:none !important;width:auto;clear:both}.post-type-frm_display #frm_adv_info{top:auto !important;position:static;width:auto}.frm_wrap .frm-right-panel #frm_adv_info,.frm_wrap #postbox-container-1 #frm_adv_info{min-width:275px}.frm_wrap #frm_adv_info ul.category-tabs li,.frm_wrap #frm_adv_info ul.category-tabs li.tabs{border:none}.frm_wrap #frm_adv_info ul.category-tabs li:first-child{margin-left:12px}.frm_wrap #frm_adv_info ul.category-tabs li.tabs{border-bottom:2px solid #5b9dd9;padding-bottom:8px}.post-type-frm_display #poststuff{padding:10px 25px}.post-type-frm_display #side-sortables .postbox{margin-bottom:20px;border-radius:var(--small-radius);border-top-width:1px}#frm_top_bar .frm_form_nav{box-shadow:0 -0.47px 10px 0 rgba(16,24,40,.0588235294)}#frm_top_bar ul.frm_form_nav{padding:1em 0;position:fixed;bottom:0;width:100%;background:#fff;z-index:99;transform:translate(-50%, 0);left:50%}.frm_page_container>.columns-2,#frm_styler_wrapper{padding-bottom:64px}#frm_style_preview .frm_floating_style_button:not(.frm_hidden){position:static;display:inline-block}.frm_wrap .columns-2 .frm-right-panel{padding-bottom:0}#frm-publishing{margin-left:auto}#frm_top_bar>.frm-full-close:last-child{margin-left:0}#frm_bs_dropdown{display:block}#frm_bs_dropdown .frm_bstooltip{display:block !important}}@media only screen and (max-width: 782px){.frm-white-body,.frm_wrap{--small-sidebar: 20%;--medium-sidebar: 35% }#form_settings_page .advanced_settings .form-table td,.form-table th{display:table-cell;width:auto !important}.frm-white-body #publishing-action,.frm_wrap #publishing-action{line-height:normal}.frm-white-body #screen-meta-links{display:none}.frm_wrap .misc-pub-section{padding:6px 0}.frm_wrap .misc-pub-section>a{float:none;white-space:nowrap}.frm-form-setting-tabs a{position:relative;padding:10px 5px 10px 40px}.frm-form-setting-tabs a .frmsvg,.frm-form-setting-tabs a i{position:absolute;left:13px;top:calc(50% - 10px);margin:0}#frm-insert-fields .button,#frm-insert-fields .button a,.frmbutton.ui-sortable-helper a{line-height:26px;max-height:28px}a.frm_add_logic_link{margin-left:0;margin-right:0;width:100%;box-sizing:border-box}a.frm_add_logic_link:not([id^=logic_]) .frmsvg,a.frm_add_logic_link i{display:none}#new_fields .frm_single_option select,#new_fields .frm_single_option input[type=text]{width:calc(100% - 83px)}.frm_single_entry_page .frm_form_fields input[type=text],.frm_single_entry_page .frm_form_fields select,.frm_single_entry_page .frm_form_fields textarea{width:100%}.with_frm_style .frm_radio input[type=radio],.with_frm_style .frm_checkbox input[type=checkbox]{width:25px !important}.frm_single_entry_page .with_frm_style .frm_radio input[type=radio],.frm_single_entry_page .with_frm_style .frm_checkbox input[type=checkbox]{width:18px !important}.wp-list-table.toplevel_page_formidable .column-entries,.wp-list-table.toplevel_page_formidable .column-form_key,.wp-list-table.toplevel_page_formidable .column-shortcode,.wp-list-table.toplevel_page_formidable .column-created_at{display:none !important}.wp-list-table.toplevel_page_formidable td.column-entries,.wp-list-table.toplevel_page_formidable td.column-form_key,.wp-list-table.toplevel_page_formidable td.column-shortcode,.wp-list-table.toplevel_page_formidable td.column-created_at{padding:3px 8px 3px 35%;text-align:left}#form_entries_page .wp-list-table th.frm_hidden,#form_entries_page .wp-list-table td.frm_hidden{display:none !important}.frm-white-body.auto-fold #wpcontent{padding-left:0}.frm_right_addon .frm_remove_field{bottom:11px}.frm-addons{grid-template-columns:1fr}.frm-admin-page-styles .frm_page_container,.frm_wrap .frm_page_container{left:0 !important}.frm_single_entry_page.frm_wrap .columns-2{display:block;border-bottom:none}.frm_single_entry_page .wrap.frm-with-margin{margin:10px 20px}.frm_single_entry_page #post-body-content+.frm-right-panel{width:auto;margin:0 20px;border:1px solid var(--sidebar-hover);border-radius:6px}#wp-content-media-buttons a.frm_insert_form{padding:0 var(--gap-sm)}.frm-white-body input[type=checkbox]:checked::before,.frm_wrap input[type=checkbox]:checked::before{width:1.2rem;height:1.2rem}}@media only screen and (max-width: 700px){.frm-white-body,.frm_wrap{--biggest-sidebar: 50%;--big-sidebar: 50%}}@media only screen and (max-width: 600px){.frm-white-body,.frm_wrap{--small-sidebar: 45px}.frm-form-setting-tabs a{visibility:collapse;font-size:0;padding:0 var(--gap-sm)}.frm-form-setting-tabs a .frmsvg,.frm-form-setting-tabs a i{visibility:visible;position:initial;font-size:18px}#frm_builder_page #frm-insert-fields{padding:0}.frm_wrap #frm_adv_info ul.category-tabs li{display:inline-block;padding:0;margin:2px 0;border-bottom:2px solid rgba(0,0,0,0)}.frm_wrap #frm_adv_info ul.category-tabs li.tabs,.frm_wrap #frm_adv_info ul.category-tabs li:first-child{margin-left:0;padding:0}.field_type_list li{text-align:center}#frm-insert-fields li a{padding:5px}#frm_form_editor_container .frm_primary_label{clear:both}#frm_builder_page .frm_code_list a.button{padding:2px}#frm_builder_page .frm_actions_dropdown>.frm-dropdown-menu{right:0;left:auto}.frm-right-panel h3.accordion-section-title{padding-right:10px;padding-left:10px;font-size:20px;white-space:nowrap;overflow:hidden}.frm-right-panel .accordion-section-title::before{margin-left:0;margin-right:3px}.rtl #frm_builder_page .frm_actions_dropdown>.frm-dropdown-menu{right:auto;left:0}.frm_on_submit_type svg{display:none}}@media only screen and (max-width: 475px){#frm_bs_dropdown{float:none}#frm-nav-tabs{padding:0;white-space:nowrap}#frm-nav-tabs a{margin-right:0}#frm_small_device_message_container{display:flex;flex-direction:column;align-items:center;justify-content:center;position:fixed;top:0;width:100%;height:100%;z-index:999999;background:var(--primary-500)}#frm_small_device_message{text-align:center;display:flex;flex-direction:column;align-items:center;width:80%;padding:1rem;background:#fff;border:solid 1px #fff;border-radius:var(--medium-radius)}#frm_small_device_message::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-78%, -65%);width:900px;height:900px;background-color:#0d7dfc;border-radius:50%;z-index:-1;opacity:.3}#frm_small_device_message>svg{padding-bottom:1rem}.toplevel_page_formidable:has(#frm_small_device_message_container) #posts-filter,.post-type-frm_display:has(#frm_small_device_message_container) #posts-filter{display:none}}@media print{a,.misc-pub-section a{color:#000 !important}.add-new-h2,#frm_top_bar,.dashicons,#adminmenuwrap,#adminmenuback,#wphead,#button_bar,#submitdiv,.button-secondary,#screen-metas,#screen-meta-links,#footer,#wpfooter,.inner-sidebar,.frm_form_nav,.frm_flash_graph,.frm_no_print,object,.error{visibility:hidden;display:none !important}.widget,.postbox,.stuffbox,.postbox h3{border-width:0 !important;border-color:#fff}.postbox{background:#fff !important;border:none;position:static}.postbox h3,.postbox h4{background:#fff !important}#wpbody-content{float:none}#wpcontent,#post-body-content,.has-right-sidebar #post-body,#poststuff .columns-2{margin:0 !important}.frm_wrap #poststuff .columns-2{display:block}#post-body-content+.frm-right-panel,.frm_wrap .columns-2 .frm-right-panel,.frm-right-panel{border:none;width:auto;display:block;padding:20px}.frm_wrap .columns-2,.frm_wrap .frm_page_container{height:auto;display:block}.misc-pub-section>span{padding:0}.frm-right-panel .postbox .inside{padding-left:12px;padding-right:12px}.curtime #timestamp::before{display:none;content:none !important}.frm_charts .alignleft{float:none}.pg_odd,.pg_even{page-break-inside:avoid;max-width:600px}.form-table td,.form-table th{padding:0}.frm_file_container a{display:block;width:100%}}.frm-admin-page-styles #frm-publishing #save_menu_header,.frm-admin-page-styles2 #frm-publishing #save_menu_header{display:inline-block}.edit_form_item .frm_combo_inputs_container[data-name-layout=last_first] .frm_form_subfield-first{order:2}.frm-video-wrapper iframe{width:100%;max-width:843px;border-radius:var(--border-radius)}#frm_field_group_popup{position:absolute;top:0;right:0;width:366px;max-height:231px;border-radius:8px;background:#fff;box-shadow:0 20px 48px rgba(40,47,54,.15);z-index:3;box-sizing:border-box;padding:24px 0;text-align:left}.rtl #frm_field_group_popup{text-align:right}.frm-merge-fields-into-row #frm_field_group_popup{top:unset;bottom:50px;height:196px}#frm_field_group_popup>hr{margin:12px 0}#frm_field_group_popup .frm-cancel-custom-field-group-layout,#frm_field_group_popup .frm-save-custom-field-group-layout{padding:4px 18px}#frm_field_group_popup .frm-cancel-custom-field-group-layout:hover{border-color:var(--primary-500) !important;color:var(--primary-500);background-color:rgba(0,0,0,0) !important}.frm-merge-fields-into-row #frm_field_group_popup .frm-break-field-group{display:none}.frm-merge-fields-into-row>a{color:rgba(40,47,54,.85);position:relative;top:2px}.frm-row-layout-title{font-weight:600;font-size:11px;line-height:15px;text-transform:uppercase;color:rgba(40,47,54,.45);margin-bottom:27px}.frm-row-layout-option{background:#f6f7fb;box-sizing:border-box;border-radius:2px;padding:15px 10px}#frm_field_group_popup .frm-row-layout-option .frm_grid_container{grid-gap:0 5%;grid-template-columns:repeat(12, auto)}#frm_field_group_popup .frm-row-layout-option{cursor:pointer;border:2px solid rgba(0,0,0,0)}#frm_field_group_popup .frm-row-layout-option.frm-active-row-layout,#frm_field_group_popup .frm-row-layout-option:hover{border-color:var(--primary-500)}.frm-custom-field-group-layout,.frm-break-field-group{padding:4px 24px;cursor:pointer;font-size:var(--text-sm);line-height:19px;color:#484e54}.frm-custom-field-group-layout:hover,.frm-break-field-group:hover{background-color:rgba(245,245,245,.9607843137)}.frm-custom-field-group-layout svg,.frm-break-field-group svg{margin-right:5px}#frm_field_multiselect_popup{background:#fff;height:48px;position:fixed;border-radius:4px;box-shadow:0 8px 24px rgba(40,47,54,.15);color:rgba(40,47,54,.85);font-size:13px;right:30px;bottom:10px;z-index:2}#frm_field_multiselect_popup>div{display:inline-block;line-height:48px;vertical-align:top}#frm_field_multiselect_popup.frm-unmergable>.frm-merge-fields-into-row,#frm_field_multiselect_popup.frm-unmergable>.frm-multiselect-popup-separator{display:none}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator){padding:0 20px;cursor:pointer}#frm_field_multiselect_popup>div:not(.frm-multiselect-popup-separator):hover{background:rgba(245,245,245,.9607843137)}.frm-builder-popup-heading{font-weight:600;font-size:11px;line-height:15px;text-transform:uppercase;color:rgba(40,47,54,.45);margin-bottom:7px}.frm-builder-popup-subheading{font-size:12px;line-height:16px;color:rgba(40,47,54,.45)}#frm_field_group_popup input[type=text]{height:30px;border-radius:3px;font-size:14px;padding:8px;color:#545f6e;border-color:rgba(40,47,54,.2)}.frm-multiselect-popup-separator{height:36px;width:1px;position:relative;top:6px;background:#c4c4c4}.frm-sortable-helper,.frm-multiselect-key-is-down li.form-field:not(.edit_field_type_divider){pointer-events:none}.frm-sortable-helper{z-index:99}#frm_banner{width:100%;color:#fff;background:var(--primary-500);height:40px;line-height:40px;text-align:center;position:relative}.frm-banner-emoji{font-size:19px}.frm-banner-emoji,.frm-banner-title{margin-right:5px;vertical-align:top}.frm-banner-cta a{text-decoration:underline !important}#frm_banner .frm-banner-cta a.frm_inbox_dismiss{display:none}.frm-banner-dismiss{cursor:pointer;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.frm-banner-dismiss .frmsvg{vertical-align:top}.frm-ready-made-solution:not(.frm-search-result){display:none !important}#frm_leave_email_wrapper .frmsvg{top:0}#frm-add-my-email-address{margin-top:30px}.frm-ready-made-solution h3~a{color:var(--primary-500)}.frm-ready-made-solution img{max-width:100%;display:block;box-shadow:var(--box-shadow-lg)}.frm_single_on_submit_settings .frm_form_field{margin:22px 0}.frm_on_submit_type_setting{padding:8px 0}.frm_on_submit_type label{display:flex;border:1px solid var(--grey-border);border-radius:var(--small-radius);gap:16px;padding:16px;align-items:center;justify-content:center}.frm_on_submit_type input{opacity:0 !important;position:absolute;z-index:-1}.frm_on_submit_type input[type=radio]:checked+label{border-color:var(--primary-color);box-shadow:0 0 0 1px var(--primary-color)}#form_settings_page .frm_on_submit_type label:hover,.frm_on_submit_type input[type=radio]:checked+label svg{color:var(--primary-color)}.frm_pro_tip,.frm-cta{justify-content:space-between;align-items:center;gap:var(--gap-2xl);padding:var(--gap-xs) var(--gap-sm);border-radius:var(--small-radius);background:var(--primary-25)}.frm-cta.frm-cta-border{border:1px solid var(--primary-200)}.frm-cta.frm-cta-border .frm-cta-footer{background-color:#fff;padding:12px var(--gap-sm);border-top:1px solid var(--primary-200);border-bottom-left-radius:var(--small-radius);border-bottom-right-radius:var(--small-radius);margin-top:12px;margin-bottom:calc(-1*var(--gap-sm));margin-left:calc(-1*var(--gap-sm));margin-right:calc(-1*var(--gap-sm))}.frm-cta h4{font-weight:600;margin-top:0;margin-bottom:var(--gap-2xs)}.frm-cta-green{background-color:var(--success-25)}.frm-cta-green .frm-banner-title{gap:calc(var(--gap-2xs) + 1px);color:var(--grey-700)}.frm-cta-green.frm-cta-border{border-color:var(--success-100)}.frm-cta-green.frm-cta-border .frm-cta-footer{border-color:var(--success-100)}.frm-cta-red{background-color:var(--error-25)}.frm-cta-red.frm-cta-border{border-color:var(--error-100)}.frm-cta-icon{padding:3px 15px 3px 0;border-right:1px solid currentColor}#frm-upgrade-banner{gap:0}#frm-upgrade-banner .frm-cta-icon+.frm-cta-content{margin-right:auto;padding-left:15px}#frm-upgrade-banner.frm-gradient h4,#frm-upgrade-banner.frm-gradient p{color:currentColor}#frm-upgrade-banner.frm-gradient h4{font-size:16px;font-weight:600}#frm-upgrade-banner.frm-gradient p{font-size:14px}.frm-right-panel .inside .frm_pro_tip,.frm_pro_tip{color:var(--grey-700);background:#ffe7de;margin:0 auto;display:flex;gap:var(--gap-xs)}.frm_field_list .frm_pro_tip{margin:10px 15px;position:relative;width:calc(100% - 30px);box-sizing:border-box;font-size:14px}.frm_pro_tip .frmsvg,.frm_pro_tip i{color:var(--orange)}.frm-tip-info{flex:1;text-align:left}.frm-tip-cta{color:var(--orange)}.frm-gradient .frm-tip-cta,.frm-light-tip .frm-gradient .frm-tip-cta{color:currentColor;font-weight:700}.frm-tip-badge{font-size:9px;font-weight:700;text-transform:uppercase;color:#1e63d5;background-color:#fff;line-height:1;border-radius:4px;padding:3px 4px}.frm-light-tip .frm_pro_tip{background:var(--primary-25)}.frm-light-tip .frm_pro_tip .frmsvg,.frm-light-tip .frm_pro_tip i,.frm-light-tip .frm-tip-cta{color:var(--primary-500)}.nav-tab-wrapper .frm_pro_tip{float:right}#frm-form-templates-modal textarea{height:108px}#frm-form-templates-modal .frm-fields button.btn{border-color:var(--grey-300);color:var(--grey-900);cursor:pointer}#frm-form-templates-modal .frm-fields button.btn .frmsvg{color:var(--grey-400);width:14px;height:14px}#frm-form-templates-modal .frm-form-templates-modal-fieldset{position:relative}#frm-form-templates-modal .frm-form-templates-modal-fieldset .frm-with-left-icon .frmsvg{padding:0;top:0;left:13px}#frm-form-templates-modal .postbox{display:block !important}#frm_empty_inbox #frm-leave-email-modal{margin-top:var(--gap-2xl)}#frm-name-your-form-modal .frm_modal_top{padding-top:var(--gap-sm)}#frm-field-group-message{position:absolute;bottom:32px;right:calc(50% - var(--biggest-sidebar));padding:var(--gap-xs) var(--gap-sm);border-radius:100px;background-color:var(--primary-25)}#frm-field-group-message .frm-field-group-message-text{gap:10px;color:var(--grey-800)}#frm-field-group-message-dismiss{margin-left:var(--gap-xs)}#frm-field-group-message-dismiss .frmsvg{color:var(--grey-800);width:15px;height:15px;cursor:pointer;transition:color 300ms ease-in-out}#frm-field-group-message-dismiss .frmsvg:hover{color:var(--grey-500)}.frm-card-item{display:flex;border:1px solid var(--grey-200);border-radius:var(--small-radius);padding:var(--gap-sm);box-shadow:var(--box-shadow-xs);background:#fff}.frm-card-item:not(.frm-counter-card){gap:10px}.frm-compact-card-item{padding:var(--gap-sm) 35px 10px 35px}.frm-card-bottom{background-color:var(--grey-50);margin-left:calc(var(--gap-sm)*-1);margin-bottom:calc(var(--gap-sm)*-1);margin-right:calc(var(--gap-sm)*-1);padding:var(--gap-sm);border-radius:0 0 var(--small-radius) var(--small-radius)}#welcome-panel:has(#frm_form_pf_importer){background-color:#fff;margin:var(--gap-sm) var(--gap-md) var(--gap-md);line-height:2}#welcome-panel:has(#frm_form_pf_importer) .welcome-panel-content{text-align:start !important;min-height:unset;display:block}#frm_form_pf_importer div{margin:10px 0 !important}#frm_form_pf_importer button{border:1px solid var(--primary-500);padding:7px 16px;min-height:28px;line-height:var(--leading);margin-bottom:0;background:var(--primary-500);color:#fff !important}#frm_form_pf_importer button:hover{background:#135e96;border-color:#135e96}.frm-option-box{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:500;background-color:#fff;padding:12px var(--gap-sm);border:1px solid var(--grey-200);border-radius:var(--small-radius);margin-bottom:var(--gap-xs);transition:background-color 100ms ease-out;cursor:pointer}.frm-option-box:hover{background-color:var(--grey-25)}.frm-option-box.frm-checked{background-color:var(--primary-25);border-color:var(--primary-200)}.frm-option-box.frm-disabled{cursor:default}.frm-option-box input[type=checkbox]{margin:0}.frm-option-box.frm-disabled input[type=checkbox]{opacity:.5}.frm-option-box .frm_help .frmsvg{width:12px;height:12px}.frm-validation-error:not(.frm_hidden){display:flex}.frm-validation-error{gap:calc(var(--gap-xs) + var(--gap-2xs))}.frm-validation-error span{color:var(--error-500)}.frm-validation-error span[frm-error]{display:none}.frm-validation-error[frm-error=empty] span[frm-error=empty],.frm-validation-error[frm-error=invalid] span[frm-error=invalid],.frm-validation-error[frm-error=custom] span[frm-error=custom]{display:inline-block}.frm-box{padding:var(--gap-sm);border:1px solid var(--grey-200);border-radius:var(--small-radius)}.frm-link-with-external-icon{display:flex;align-items:center;gap:var(--gap-2xs);font-size:var(--text-xs)}.frm-link-with-external-icon .frmsvg{width:16px;height:16px;transform:rotate(45deg)}#wpbody-content .frm-page-skeleton ul,#wpbody-content .frm-page-skeleton li{margin:0}#wpbody-content .frm-page-skeleton .frm-right-panel{padding:2px;overflow-y:initial}#wpbody-content .frm-page-skeleton .frm-scrollbar-wrapper{padding:var(--gap-md) var(--gap-sm)}#wpbody-content .frm-page-skeleton .frm-search{float:none;padding:0 var(--gap-2xs)}#wpbody-content .frm-page-skeleton .frm-search>svg{left:var(--gap-2xs)}#wpbody-content .frm-page-skeleton .frm-search>input{width:100%}.frm-page-skeleton-cat{cursor:pointer;padding:var(--gap-xs);border-radius:var(--small-radius);background-color:rgba(0,0,0,0);transition:background-color 250ms ease-out}.frm-page-skeleton-cat:hover{background-color:var(--grey-100)}.frm-page-skeleton-cat>*{z-index:2}.frm-page-skeleton-cat-text{color:var(--grey-900);text-transform:capitalize}.frm-page-skeleton-cat-count{color:var(--grey-400)}.frm-current .frm-page-skeleton-cat-text,.frm-current .frm-page-skeleton-cat-count{color:var(--primary-500)}.frm-list-grid-layout{display:grid;grid-template-columns:repeat(auto-fill, minmax(303px, 1fr));grid-auto-rows:max-content;gap:var(--gap-sm)}.frm-list-grid-layout>*{grid-column:span 1}#frm-page-skeleton-empty-state{height:100%;margin-top:calc(-1*var(--gap-md))}#frm-page-skeleton-empty-state .frm-page-skeleton-text{max-width:420px}.frm-page-skeleton-divider{border-top:1px solid var(--grey-200);margin:0}.field_type_list .frm_tsubmit{display:none !important}#frm_style_sidebar .accordion-section-title::after,#frm_view_editor_left .accordion-section-title::after{content:""}a[href="#square_settings"] svg.frmsvg{width:23px !important;height:22px !important}#frm_square_test_setup_modal a:focus{box-shadow:none !important}@media only screen and (max-width: 900px){#square_settings .frm_grid_container:has(.frm-card-item){grid-template-columns:repeat(1, 1fr)}#square_settings .frm-card-item+.frm-card-item{margin-top:var(--gap-sm)}}#frm_sale_banner{display:flex;height:90px;flex-direction:row;align-items:center;gap:var(--gap-sm);cursor:pointer;position:relative}#frm_sale_banner>div:first-child{align-self:flex-end;width:150px;height:100%;display:flex;justify-content:center}#frm_sale_banner>div:first-child img{align-self:center}#frm_sale_banner>div:nth-child(3){margin-left:auto;margin-right:50px}#frm_sale_banner>div:nth-child(2)>div:last-child{opacity:.8}#frm_sale_banner a:not(.dismiss){text-shadow:none;border-radius:30px;border:1px rgba(0,0,0,0);font-size:var(--text-sm);padding:7px 16px;height:auto;min-height:28px;outline:none;line-height:var(--leading);box-sizing:border-box;margin-bottom:0;display:inline-block;font-weight:700;background-color:#fff;color:#000}#frm_sale_banner .dismiss{position:absolute;color:#fff;opacity:.6;right:15px;top:10px}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: #fff"]{background-color:#f0f0f0 !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(241, 90, 36, 1)"]{background-color:#e6470f !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(239, 58, 78, 1)"]{background-color:#ed1d34 !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(33, 2, 14, 1)"]{background-color:#3e041a !important}#frm_sale_banner:hover a:not(.dismiss)[style*="background-color: rgba(72, 51, 64, 1)"]{background-color:#362630 !important}.frm-lookup-box-label{display:none}.frm-inline-modal[id^=frm-lookup-box]{background-color:rgba(0,0,0,0);border:0;box-shadow:none}.frm-inline-modal[id^=frm-lookup-box] .frm-nav-tabs,.frm-inline-modal[id^=frm-lookup-box] .dismiss{display:none}.frm_single_option a.frm_remove_tag svg,.frm_single_option a.frm_add_opt svg{width:15px;height:15px}#frm_builder_page #frm-options-panel .frm-single-settings.frm-type-ranking .frm_image_styling_frame{margin-left:12px} diff --git a/images/email-styles/classic.svg b/images/email-styles/classic.svg new file mode 100644 index 0000000000..b6efb239d5 --- /dev/null +++ b/images/email-styles/classic.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/images/email-styles/compact.svg b/images/email-styles/compact.svg new file mode 100644 index 0000000000..19f52e2e8e --- /dev/null +++ b/images/email-styles/compact.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/images/email-styles/modern.svg b/images/email-styles/modern.svg new file mode 100644 index 0000000000..e4dad504c2 --- /dev/null +++ b/images/email-styles/modern.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/images/email-styles/placeholder.png b/images/email-styles/placeholder.png new file mode 100644 index 0000000000..dcc9d39081 Binary files /dev/null and b/images/email-styles/placeholder.png differ diff --git a/images/email-styles/plain.svg b/images/email-styles/plain.svg new file mode 100644 index 0000000000..5ddcaab2b1 --- /dev/null +++ b/images/email-styles/plain.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/images/email-styles/sleek.svg b/images/email-styles/sleek.svg new file mode 100644 index 0000000000..0c6a0b62f8 --- /dev/null +++ b/images/email-styles/sleek.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/js/admin/settings.js b/js/admin/settings.js index 3299c4a89a..7b9bf085ca 100644 --- a/js/admin/settings.js +++ b/js/admin/settings.js @@ -1,7 +1,14 @@ ( function() { + 'use strict'; + + const globalVars = { + sendTestEmailModal: null + }; + function addEventListeners() { document.addEventListener( 'change', handleChangeEvent ); document.addEventListener( 'keydown', handleKeyDownEvent ); + document.addEventListener( 'click', handleClickEvent ); } function handleChangeEvent( e ) { @@ -26,6 +33,69 @@ e.target.nextElementSibling.setAttribute( 'aria-checked', e.target.checked ? 'true' : 'false' ); } + function handleClickEvent( e ) { + if ( 'BUTTON' === e.target.nodeName && 'choose' === e.target.dataset.action && e.target.closest( '.frm-email-style' ) ) { + handleClickChooseEmailStyle( e ); + return; + } + + if ( 'frm-send-test-email' === e.target.id ) { + showSendTestEmailModal( e ); + return; + } + + if ( 'frm-send-test-email-btn' === e.target.id ) { + handleClickSendTestEmailBtn( e ); + } + } + + function handleClickChooseEmailStyle( e ) { + const styleEls = document.querySelectorAll( '.frm-email-style' ); + styleEls.forEach( el => { + el.classList.remove( 'frm-email-style--selected' ); + } ); + + const styleEl = e.target.closest( '.frm-email-style' ); + styleEl.classList.add( 'frm-email-style--selected' ); + + const styleKey = styleEl.dataset.styleKey; + document.getElementById( 'frm-email-style-value' ).value = styleKey; + } + + function showSendTestEmailModal( e ) { + if ( ! globalVars.sendTestEmailModal ) { + globalVars.sendTestEmailModal = frmAdminBuild.initModal( '#frm-send-test-email-modal', '400px' ); + } + + globalVars.sendTestEmailModal.dialog( 'open' ); + } + + function handleClickSendTestEmailBtn( e ) { + const emailInput = document.getElementById( 'frm-test-email-address' ); + const resultEl = document.getElementById( 'frm-send-test-email-result' ); + + const showResult = ( msg, success ) => { + resultEl.textContent = msg; + resultEl.classList.add( success ? 'frm_updated_message' : 'frm_error_style' ); + }; + + resultEl.textContent = ''; + resultEl.classList.remove( 'frm_error_style', 'frm_updated_message' ); + + if ( ! emailInput.value ) { + showResult( 'Empty email address' ); + return; + } + + const data = new FormData(); + data.append( 'emails_str', emailInput.value ); + frmDom.ajax.doJsonPost( 'send_test_email', data ).then( response => { + showResult( response, true ); + } ).catch( error => { + showResult( error ); + } ); + } + /** * Updates the currency formatting options based on the selected currency. * diff --git a/js/form-templates.js.map b/js/form-templates.js.map index 753b768f68..df0cd1ff9c 100644 --- a/js/form-templates.js.map +++ b/js/form-templates.js.map @@ -1 +1,5 @@ -{"version":3,"file":"form-templates.js","mappings":";;;;;;;;;;;;;;;;AAAsC;AACE;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,aAAa,oBAAoB,MAAM;AACnD;AACe;AACf,aAAa,2DAAO;;AAEpB;AACA,SAAS,4DAAQ;AACjB;AACA;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB;AACA,YAAY,GAAG;AACf;AACe;AACf;AACA;;AAEA,cAAc,oBAAoB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AC7GsC;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf,gBAAgB,2DAAO;;AAEvB;AACA,sBAAsB,OAAO;AAC7B;AACA;;;;;;;;;;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;AC3HA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY;AACZ;AACe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;;;;;;;;;;;;;;;;AC5CA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC;;AAEA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,SAAS,iEAAiB;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,QAAQ;;AAEzB;;AAEA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,kBAAkB;AAClB;;;AAGA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,iBAAiB,EAAC;AACjC;;;;;;;;;;;;;;;;ACpBA;AACA;AACA;AACqD;AACrD;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA,iEAAe,eAAe,EAAC;AAC/B;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;ACrCwE;;AAExE;AACA;AACA;AAC4C;AACM;AACN;AACA;AACQ;AACJ;AACJ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,EAAE,qFAAe;;AAEjB,aAAa,mBAAmB;AAChC;AACA;AACA,aAAa,mBAAmB;;AAEhC;AACA;AACA,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,sBAAsB,6DAAgB;AACtC,sBAAsB,6DAAgB;AACtC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,0BAA0B,6DAAgB;AAC1C,0BAA0B,6DAAgB;AAC1C,kBAAkB,0DAAa;AAC/B,sBAAsB,0DAAa;AACnC,uBAAuB,8DAAiB;AACxC,uBAAuB,8DAAiB;AACxC,qBAAqB,4DAAe;AACpC,qBAAqB,4DAAe;AACpC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC;AACA,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;AAC3B;;;;;;;;;;;;;;;;;AC5DA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA;AACA,YAAY,YAAY;AACxB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,uBAAuB,iEAAiB;AACxC;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;;AC3F8E;;AAE9E;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA,YAAY,kDAAkD;AAC9D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;;AAElD,QAAQ,IAAqC;AAC7C;AACA;AACA,sCAAsC,wFAAkB;AACxD;AACA;;AAEA,2FAA2F,aAAa;AACxG;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvEA;AACA;AACA;AACwC;AACxC,cAAc,uBAAuB;;AAErC;AACA;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;;AAEA;AACA,aAAa,wBAAwB,uBAAuB;AAC5D;;AAEA;AACA,aAAa,uBAAuB;AACpC;;AAEA;AACA,aAAa,+BAA+B;AAC5C;;AAEO,mBAAmB,wDAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2P;AAC3P;;;;;;;;;;;;;;;ACzDA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;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AAG,KAAK;AAAA;;;;;;;;;;ACrE7F;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C;AACA,cAAc,4BAA4B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,2BAA2B,eAAe;AAC1C,qBAAqB,iBAAiB;AACtC,cAAc,iBAAiB;AAC/B,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,KAA+B,GAAG,EAMtC;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACtKA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,IAA8B;AACtC,QAAQ,eAAkB;AAC1B,QAAQ,gBAAmB;AAC3B;AACA;AACA;AACA;;AAEA,YAAY,IAA6C;AACzD,YAAY,mCAAO;AACnB;AACA;AACA;AACA;AACA,aAAa;AAAA,kGAAC;AACd;AACA;AACA;AACA,CAAC,IAAI;;;;;;;;;;;;;;;;;ACtO0C;;AAE/C;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,gGAAgG;AAC9G;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,qCAAqC;AACnD;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA,qBAAqB;;AAErB,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,kBAAkB;AAC7B;AACe;AACf;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,gEAAW;AACnB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB;AACA,WAAW,aAAa;AACxB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpNA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;;ACJqD;AACrD;AACA,+BAA+B,gEAAgB;AAC/C;;;;;;;;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACFuD;AACJ;AACsB;AAClB;AACvD;AACA,SAAS,iEAAiB,OAAO,+DAAe,OAAO,0EAA0B,OAAO,iEAAiB;AACzG;;;;;;;;;;;;;;;;;ACNqD;AACrD;AACA;AACA,qCAAqC,gEAAgB;AACrD,cAAc;AACd,+LAA+L,gEAAgB;AAC/M;AACA;;;;;;;;;;;;;;;;;ACP+C;AAC/C;AACA,cAAc,6DAAa;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACRkC;AAClC;AACA,kBAAkB,sDAAO;AACzB;AACA;AACA;AACA,oBAAoB,sDAAO;AAC3B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVkC;AACS;AAC3C;AACA,UAAU,2DAAW;AACrB,qBAAqB,sDAAO;AAC5B;;;;;;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;;;;;;;UCRA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACNA;AACA;AACA;AAC4C;;AAE5C;AACA;AACA;AAC8C;AACkB;AAEhEsf,gEAAQ,CAAE,YAAM;EACf;AACD;AACA;AACA;AACA;EACC9b,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,mCAAmC,EAAE;IACvDzE,QAAQ,EAARA,6CAAQ;IACRM,QAAQ,EAARA,6CAAQA;EACT,CAAE,CAAC;;EAEH;EACAiU,oEAAuB,CAAC,CAAC;;EAEzB;AACD;AACA;AACA;AACA;EACCpQ,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,kCAAkC,EAAE;IACtDzE,QAAQ,EAARA,6CAAQ;IACRM,QAAQ,EAARA,6CAAQA;EACT,CAAE,CAAC;;EAEH;AACD;AACA;AACA;AACA;AACA;EACC6D,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,yBAAyB,EAAEyb,MAAM,CAAE,mBAAoB,CAAE,CAAC;AAC9E,CAAE,CAAC,C","sources":["webpack://formidable/./node_modules/@tannin/compile/index.js","webpack://formidable/./node_modules/@tannin/evaluate/index.js","webpack://formidable/./node_modules/@tannin/plural-forms/index.js","webpack://formidable/./node_modules/@tannin/postfix/index.js","webpack://formidable/./node_modules/@wordpress/dom-ready/build-module/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createAddHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createCurrentHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDidHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDoingHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHasHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHooks.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRemoveHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRunHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateHookName.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateNamespace.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/create-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/default-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/index.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/sprintf.js","webpack://formidable/./js/src/core/constants.js","webpack://formidable/./js/src/core/factory/createPageElements.js","webpack://formidable/./js/src/core/factory/createPageState.js","webpack://formidable/./js/src/core/factory/index.js","webpack://formidable/./js/src/core/page-skeleton/constants.js","webpack://formidable/./js/src/core/page-skeleton/elements/elements.js","webpack://formidable/./js/src/core/page-skeleton/elements/emptyStateElement.js","webpack://formidable/./js/src/core/page-skeleton/elements/index.js","webpack://formidable/./js/src/core/page-skeleton/events/categoryListener.js","webpack://formidable/./js/src/core/page-skeleton/events/index.js","webpack://formidable/./js/src/core/page-skeleton/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/pageState.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.js","webpack://formidable/./js/src/form-templates/elements/applicationTemplatesElement.js","webpack://formidable/./js/src/form-templates/elements/elements.js","webpack://formidable/./js/src/form-templates/elements/index.js","webpack://formidable/./js/src/form-templates/events/applicationTemplateListener.js","webpack://formidable/./js/src/form-templates/events/createFormButtonListener.js","webpack://formidable/./js/src/form-templates/events/createTemplateListeners.js","webpack://formidable/./js/src/form-templates/events/favoriteButtonListener.js","webpack://formidable/./js/src/form-templates/events/index.js","webpack://formidable/./js/src/form-templates/events/searchListener.js","webpack://formidable/./js/src/form-templates/events/useTemplateButtonListener.js","webpack://formidable/./js/src/form-templates/initializeFormTemplates.js","webpack://formidable/./js/src/form-templates/shared/constants.js","webpack://formidable/./js/src/form-templates/shared/index.js","webpack://formidable/./js/src/form-templates/shared/pageState.js","webpack://formidable/./js/src/form-templates/templates/applicationTemplates.js","webpack://formidable/./js/src/form-templates/templates/categorizeTemplates.js","webpack://formidable/./js/src/form-templates/templates/index.js","webpack://formidable/./js/src/form-templates/ui/index.js","webpack://formidable/./js/src/form-templates/ui/initializeModal.js","webpack://formidable/./js/src/form-templates/ui/pageTitle.js","webpack://formidable/./js/src/form-templates/ui/searchState.js","webpack://formidable/./js/src/form-templates/ui/setupInitialView.js","webpack://formidable/./js/src/form-templates/ui/showEmptyState.js","webpack://formidable/./js/src/form-templates/ui/showHeaderCancelButton.js","webpack://formidable/./js/src/form-templates/ui/showModal.js","webpack://formidable/./js/src/form-templates/ui/showSelectedCategory.js","webpack://formidable/./js/src/form-templates/utils/index.js","webpack://formidable/./js/src/form-templates/utils/validation.js","webpack://formidable/./node_modules/memize/index.js","webpack://formidable/./node_modules/sprintf-js/src/sprintf.js","webpack://formidable/./node_modules/tannin/index.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://formidable/webpack/bootstrap","webpack://formidable/webpack/runtime/compat get default export","webpack://formidable/webpack/runtime/define property getters","webpack://formidable/webpack/runtime/hasOwnProperty shorthand","webpack://formidable/webpack/runtime/make namespace object","webpack://formidable/./js/src/form-templates/index.js"],"sourcesContent":["import postfix from '@tannin/postfix';\nimport evaluate from '@tannin/evaluate';\n\n/**\n * Given a C expression, returns a function which can be called to evaluate its\n * result.\n *\n * @example\n *\n * ```js\n * import compile from '@tannin/compile';\n *\n * const evaluate = compile( 'n > 1' );\n *\n * evaluate( { n: 2 } );\n * // ⇒ true\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator.\n */\nexport default function compile( expression ) {\n\tvar terms = postfix( expression );\n\n\treturn function( variables ) {\n\t\treturn evaluate( terms, variables );\n\t};\n}\n","/**\n * Operator callback functions.\n *\n * @type {Object}\n */\nvar OPERATORS = {\n\t'!': function( a ) {\n\t\treturn ! a;\n\t},\n\t'*': function( a, b ) {\n\t\treturn a * b;\n\t},\n\t'/': function( a, b ) {\n\t\treturn a / b;\n\t},\n\t'%': function( a, b ) {\n\t\treturn a % b;\n\t},\n\t'+': function( a, b ) {\n\t\treturn a + b;\n\t},\n\t'-': function( a, b ) {\n\t\treturn a - b;\n\t},\n\t'<': function( a, b ) {\n\t\treturn a < b;\n\t},\n\t'<=': function( a, b ) {\n\t\treturn a <= b;\n\t},\n\t'>': function( a, b ) {\n\t\treturn a > b;\n\t},\n\t'>=': function( a, b ) {\n\t\treturn a >= b;\n\t},\n\t'==': function( a, b ) {\n\t\treturn a === b;\n\t},\n\t'!=': function( a, b ) {\n\t\treturn a !== b;\n\t},\n\t'&&': function( a, b ) {\n\t\treturn a && b;\n\t},\n\t'||': function( a, b ) {\n\t\treturn a || b;\n\t},\n\t'?:': function( a, b, c ) {\n\t\tif ( a ) {\n\t\t\tthrow b;\n\t\t}\n\n\t\treturn c;\n\t},\n};\n\n/**\n * Given an array of postfix terms and operand variables, returns the result of\n * the postfix evaluation.\n *\n * @example\n *\n * ```js\n * import evaluate from '@tannin/evaluate';\n *\n * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +'\n * const terms = [ '3', '4', '5', '*', '6', '/', '+' ];\n *\n * evaluate( terms, {} );\n * // ⇒ 6.333333333333334\n * ```\n *\n * @param {string[]} postfix Postfix terms.\n * @param {Object} variables Operand variables.\n *\n * @return {*} Result of evaluation.\n */\nexport default function evaluate( postfix, variables ) {\n\tvar stack = [],\n\t\ti, j, args, getOperatorResult, term, value;\n\n\tfor ( i = 0; i < postfix.length; i++ ) {\n\t\tterm = postfix[ i ];\n\n\t\tgetOperatorResult = OPERATORS[ term ];\n\t\tif ( getOperatorResult ) {\n\t\t\t// Pop from stack by number of function arguments.\n\t\t\tj = getOperatorResult.length;\n\t\t\targs = Array( j );\n\t\t\twhile ( j-- ) {\n\t\t\t\targs[ j ] = stack.pop();\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tvalue = getOperatorResult.apply( null, args );\n\t\t\t} catch ( earlyReturn ) {\n\t\t\t\treturn earlyReturn;\n\t\t\t}\n\t\t} else if ( variables.hasOwnProperty( term ) ) {\n\t\t\tvalue = variables[ term ];\n\t\t} else {\n\t\t\tvalue = +term;\n\t\t}\n\n\t\tstack.push( value );\n\t}\n\n\treturn stack[ 0 ];\n}\n","import compile from '@tannin/compile';\n\n/**\n * Given a C expression, returns a function which, when called with a value,\n * evaluates the result with the value assumed to be the \"n\" variable of the\n * expression. The result will be coerced to its numeric equivalent.\n *\n * @param {string} expression C expression.\n *\n * @return {Function} Evaluator function.\n */\nexport default function pluralForms( expression ) {\n\tvar evaluate = compile( expression );\n\n\treturn function( n ) {\n\t\treturn +evaluate( { n: n } );\n\t};\n}\n","var PRECEDENCE, OPENERS, TERMINATORS, PATTERN;\n\n/**\n * Operator precedence mapping.\n *\n * @type {Object}\n */\nPRECEDENCE = {\n\t'(': 9,\n\t'!': 8,\n\t'*': 7,\n\t'/': 7,\n\t'%': 7,\n\t'+': 6,\n\t'-': 6,\n\t'<': 5,\n\t'<=': 5,\n\t'>': 5,\n\t'>=': 5,\n\t'==': 4,\n\t'!=': 4,\n\t'&&': 3,\n\t'||': 2,\n\t'?': 1,\n\t'?:': 1,\n};\n\n/**\n * Characters which signal pair opening, to be terminated by terminators.\n *\n * @type {string[]}\n */\nOPENERS = [ '(', '?' ];\n\n/**\n * Characters which signal pair termination, the value an array with the\n * opener as its first member. The second member is an optional operator\n * replacement to push to the stack.\n *\n * @type {string[]}\n */\nTERMINATORS = {\n\t')': [ '(' ],\n\t':': [ '?', '?:' ],\n};\n\n/**\n * Pattern matching operators and openers.\n *\n * @type {RegExp}\n */\nPATTERN = /<=|>=|==|!=|&&|\\|\\||\\?:|\\(|!|\\*|\\/|%|\\+|-|<|>|\\?|\\)|:/;\n\n/**\n * Given a C expression, returns the equivalent postfix (Reverse Polish)\n * notation terms as an array.\n *\n * If a postfix string is desired, simply `.join( ' ' )` the result.\n *\n * @example\n *\n * ```js\n * import postfix from '@tannin/postfix';\n *\n * postfix( 'n > 1' );\n * // ⇒ [ 'n', '1', '>' ]\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {string[]} Postfix terms.\n */\nexport default function postfix( expression ) {\n\tvar terms = [],\n\t\tstack = [],\n\t\tmatch, operator, term, element;\n\n\twhile ( ( match = expression.match( PATTERN ) ) ) {\n\t\toperator = match[ 0 ];\n\n\t\t// Term is the string preceding the operator match. It may contain\n\t\t// whitespace, and may be empty (if operator is at beginning).\n\t\tterm = expression.substr( 0, match.index ).trim();\n\t\tif ( term ) {\n\t\t\tterms.push( term );\n\t\t}\n\n\t\twhile ( ( element = stack.pop() ) ) {\n\t\t\tif ( TERMINATORS[ operator ] ) {\n\t\t\t\tif ( TERMINATORS[ operator ][ 0 ] === element ) {\n\t\t\t\t\t// Substitution works here under assumption that because\n\t\t\t\t\t// the assigned operator will no longer be a terminator, it\n\t\t\t\t\t// will be pushed to the stack during the condition below.\n\t\t\t\t\toperator = TERMINATORS[ operator ][ 1 ] || operator;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) {\n\t\t\t\t// Push to stack if either an opener or when pop reveals an\n\t\t\t\t// element of lower precedence.\n\t\t\t\tstack.push( element );\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// For each popped from stack, push to terms.\n\t\t\tterms.push( element );\n\t\t}\n\n\t\tif ( ! TERMINATORS[ operator ] ) {\n\t\t\tstack.push( operator );\n\t\t}\n\n\t\t// Slice matched fragment from expression to continue match.\n\t\texpression = expression.substr( match.index + operator.length );\n\t}\n\n\t// Push remainder of operand, if exists, to terms.\n\texpression = expression.trim();\n\tif ( expression ) {\n\t\tterms.push( expression );\n\t}\n\n\t// Pop remaining items from stack into terms.\n\treturn terms.concat( stack.reverse() );\n}\n","/**\n * @typedef {() => void} Callback\n *\n * TODO: Remove this typedef and inline `() => void` type.\n *\n * This typedef is used so that a descriptive type is provided in our\n * automatically generated documentation.\n *\n * An in-line type `() => void` would be preferable, but the generated\n * documentation is `null` in that case.\n *\n * @see https://github.com/WordPress/gutenberg/issues/18045\n */\n\n/**\n * Specify a function to execute when the DOM is fully loaded.\n *\n * @param {Callback} callback A function to execute after the DOM is ready.\n *\n * @example\n * ```js\n * import domReady from '@wordpress/dom-ready';\n *\n * domReady( function() {\n * \t//do something after DOM loads.\n * } );\n * ```\n *\n * @return {void}\n */\nexport default function domReady(callback) {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly.\n document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly.\n ) {\n return void callback();\n } // DOMContentLoaded has not fired yet, delay callback until then.\n\n\n document.addEventListener('DOMContentLoaded', callback);\n}\n//# sourceMappingURL=index.js.map","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback AddHook\n *\n * Adds the hook to the appropriate hooks container.\n *\n * @param {string} hookName Name of hook to add\n * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.\n * @param {import('.').Callback} callback Function to call when the hook is run\n * @param {number} [priority=10] Priority of this hook\n */\n\n/**\n * Returns a function which, when invoked, will add a hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {AddHook} Function that adds a new hook.\n */\n\nfunction createAddHook(hooks, storeKey) {\n return function addHook(hookName, namespace, callback) {\n var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!validateNamespace(namespace)) {\n return;\n }\n\n if ('function' !== typeof callback) {\n // eslint-disable-next-line no-console\n console.error('The hook callback must be a function.');\n return;\n } // Validate numeric priority\n\n\n if ('number' !== typeof priority) {\n // eslint-disable-next-line no-console\n console.error('If specified, the hook priority must be a number.');\n return;\n }\n\n var handler = {\n callback: callback,\n priority: priority,\n namespace: namespace\n };\n\n if (hooksStore[hookName]) {\n // Find the correct insert index of the new hook.\n var handlers = hooksStore[hookName].handlers;\n /** @type {number} */\n\n var i;\n\n for (i = handlers.length; i > 0; i--) {\n if (priority >= handlers[i - 1].priority) {\n break;\n }\n }\n\n if (i === handlers.length) {\n // If append, operate via direct assignment.\n handlers[i] = handler;\n } else {\n // Otherwise, insert before index via splice.\n handlers.splice(i, 0, handler);\n } // We may also be currently executing this hook. If the callback\n // we're adding would come after the current callback, there's no\n // problem; otherwise we need to increase the execution index of\n // any other runs by 1 to account for the added element.\n\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex++;\n }\n });\n } else {\n // This is the first hook of its type.\n hooksStore[hookName] = {\n handlers: [handler],\n runs: 0\n };\n }\n\n if (hookName !== 'hookAdded') {\n hooks.doAction('hookAdded', hookName, namespace, callback, priority);\n }\n };\n}\n\nexport default createAddHook;\n//# sourceMappingURL=createAddHook.js.map","/**\n * Returns a function which, when invoked, will return the name of the\n * currently running hook, or `null` if no hook of the given type is currently\n * running.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {() => string | null} Function that returns the current hook name or null.\n */\nfunction createCurrentHook(hooks, storeKey) {\n return function currentHook() {\n var _hooksStore$__current, _hooksStore$__current2;\n\n var hooksStore = hooks[storeKey];\n return (_hooksStore$__current = (_hooksStore$__current2 = hooksStore.__current[hooksStore.__current.length - 1]) === null || _hooksStore$__current2 === void 0 ? void 0 : _hooksStore$__current2.name) !== null && _hooksStore$__current !== void 0 ? _hooksStore$__current : null;\n };\n}\n\nexport default createCurrentHook;\n//# sourceMappingURL=createCurrentHook.js.map","/**\n * Internal dependencies\n */\nimport validateHookName from './validateHookName.js';\n/**\n * @callback DidHook\n *\n * Returns the number of times an action has been fired.\n *\n * @param {string} hookName The hook name to check.\n *\n * @return {number | undefined} The number of times the hook has run.\n */\n\n/**\n * Returns a function which, when invoked, will return the number of times a\n * hook has been called.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DidHook} Function that returns a hook's call count.\n */\n\nfunction createDidHook(hooks, storeKey) {\n return function didHook(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0;\n };\n}\n\nexport default createDidHook;\n//# sourceMappingURL=createDidHook.js.map","/**\n * @callback DoingHook\n * Returns whether a hook is currently being executed.\n *\n * @param {string} [hookName] The name of the hook to check for. If\n * omitted, will check for any hook being executed.\n *\n * @return {boolean} Whether the hook is being executed.\n */\n\n/**\n * Returns a function which, when invoked, will return whether a hook is\n * currently being executed.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DoingHook} Function that returns whether a hook is currently\n * being executed.\n */\nfunction createDoingHook(hooks, storeKey) {\n return function doingHook(hookName) {\n var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook.\n\n if ('undefined' === typeof hookName) {\n return 'undefined' !== typeof hooksStore.__current[0];\n } // Return the __current hook.\n\n\n return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false;\n };\n}\n\nexport default createDoingHook;\n//# sourceMappingURL=createDoingHook.js.map","/**\n * @callback HasHook\n *\n * Returns whether any handlers are attached for the given hookName and optional namespace.\n *\n * @param {string} hookName The name of the hook to check for.\n * @param {string} [namespace] Optional. The unique namespace identifying the callback\n * in the form `vendor/plugin/function`.\n *\n * @return {boolean} Whether there are handlers that are attached to the given hook.\n */\n\n/**\n * Returns a function which, when invoked, will return whether any handlers are\n * attached to a particular hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {HasHook} Function that returns whether any handlers are\n * attached to a particular hook and optional namespace.\n */\nfunction createHasHook(hooks, storeKey) {\n return function hasHook(hookName, namespace) {\n var hooksStore = hooks[storeKey]; // Use the namespace if provided.\n\n if ('undefined' !== typeof namespace) {\n return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) {\n return hook.namespace === namespace;\n });\n }\n\n return hookName in hooksStore;\n };\n}\n\nexport default createHasHook;\n//# sourceMappingURL=createHasHook.js.map","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\n\n/**\n * Internal dependencies\n */\nimport createAddHook from './createAddHook';\nimport createRemoveHook from './createRemoveHook';\nimport createHasHook from './createHasHook';\nimport createRunHook from './createRunHook';\nimport createCurrentHook from './createCurrentHook';\nimport createDoingHook from './createDoingHook';\nimport createDidHook from './createDidHook';\n/**\n * Internal class for constructing hooks. Use `createHooks()` function\n *\n * Note, it is necessary to expose this class to make its type public.\n *\n * @private\n */\n\nexport var _Hooks = function _Hooks() {\n _classCallCheck(this, _Hooks);\n\n /** @type {import('.').Store} actions */\n this.actions = Object.create(null);\n this.actions.__current = [];\n /** @type {import('.').Store} filters */\n\n this.filters = Object.create(null);\n this.filters.__current = [];\n this.addAction = createAddHook(this, 'actions');\n this.addFilter = createAddHook(this, 'filters');\n this.removeAction = createRemoveHook(this, 'actions');\n this.removeFilter = createRemoveHook(this, 'filters');\n this.hasAction = createHasHook(this, 'actions');\n this.hasFilter = createHasHook(this, 'filters');\n this.removeAllActions = createRemoveHook(this, 'actions', true);\n this.removeAllFilters = createRemoveHook(this, 'filters', true);\n this.doAction = createRunHook(this, 'actions');\n this.applyFilters = createRunHook(this, 'filters', true);\n this.currentAction = createCurrentHook(this, 'actions');\n this.currentFilter = createCurrentHook(this, 'filters');\n this.doingAction = createDoingHook(this, 'actions');\n this.doingFilter = createDoingHook(this, 'filters');\n this.didAction = createDidHook(this, 'actions');\n this.didFilter = createDidHook(this, 'filters');\n};\n/** @typedef {_Hooks} Hooks */\n\n/**\n * Returns an instance of the hooks object.\n *\n * @return {Hooks} A Hooks instance.\n */\n\nfunction createHooks() {\n return new _Hooks();\n}\n\nexport default createHooks;\n//# sourceMappingURL=createHooks.js.map","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback RemoveHook\n * Removes the specified callback (or all callbacks) from the hook with a given hookName\n * and namespace.\n *\n * @param {string} hookName The name of the hook to modify.\n * @param {string} namespace The unique namespace identifying the callback in the\n * form `vendor/plugin/function`.\n *\n * @return {number | undefined} The number of callbacks removed.\n */\n\n/**\n * Returns a function which, when invoked, will remove a specified hook or all\n * hooks by the given name.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName,\n * without regard to namespace. Used to create\n * `removeAll*` functions.\n *\n * @return {RemoveHook} Function that removes hooks.\n */\n\nfunction createRemoveHook(hooks, storeKey) {\n var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function removeHook(hookName, namespace) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!removeAll && !validateNamespace(namespace)) {\n return;\n } // Bail if no hooks exist by this name\n\n\n if (!hooksStore[hookName]) {\n return 0;\n }\n\n var handlersRemoved = 0;\n\n if (removeAll) {\n handlersRemoved = hooksStore[hookName].handlers.length;\n hooksStore[hookName] = {\n runs: hooksStore[hookName].runs,\n handlers: []\n };\n } else {\n // Try to find the specified callback to remove.\n var handlers = hooksStore[hookName].handlers;\n\n var _loop = function _loop(i) {\n if (handlers[i].namespace === namespace) {\n handlers.splice(i, 1);\n handlersRemoved++; // This callback may also be part of a hook that is\n // currently executing. If the callback we're removing\n // comes after the current callback, there's no problem;\n // otherwise we need to decrease the execution index of any\n // other runs by 1 to account for the removed element.\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex--;\n }\n });\n }\n };\n\n for (var i = handlers.length - 1; i >= 0; i--) {\n _loop(i);\n }\n }\n\n if (hookName !== 'hookRemoved') {\n hooks.doAction('hookRemoved', hookName, namespace);\n }\n\n return handlersRemoved;\n };\n}\n\nexport default createRemoveHook;\n//# sourceMappingURL=createRemoveHook.js.map","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\n\n/**\n * Returns a function which, when invoked, will execute all callbacks\n * registered to a hook of the specified type, optionally returning the final\n * value of the call chain.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to\n * return its first argument.\n *\n * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks.\n */\nfunction createRunHook(hooks, storeKey) {\n var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function runHooks(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!hooksStore[hookName]) {\n hooksStore[hookName] = {\n handlers: [],\n runs: 0\n };\n }\n\n hooksStore[hookName].runs++;\n var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds.\n\n if ('production' !== process.env.NODE_ENV) {\n // Handle any 'all' hooks registered.\n if ('hookAdded' !== hookName && hooksStore.all) {\n handlers.push.apply(handlers, _toConsumableArray(hooksStore.all.handlers));\n }\n }\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!handlers || !handlers.length) {\n return returnFirstArg ? args[0] : undefined;\n }\n\n var hookInfo = {\n name: hookName,\n currentIndex: 0\n };\n\n hooksStore.__current.push(hookInfo);\n\n while (hookInfo.currentIndex < handlers.length) {\n var handler = handlers[hookInfo.currentIndex];\n var result = handler.callback.apply(null, args);\n\n if (returnFirstArg) {\n args[0] = result;\n }\n\n hookInfo.currentIndex++;\n }\n\n hooksStore.__current.pop();\n\n if (returnFirstArg) {\n return args[0];\n }\n };\n}\n\nexport default createRunHook;\n//# sourceMappingURL=createRunHook.js.map","/**\n * Internal dependencies\n */\nimport createHooks from './createHooks';\n/** @typedef {(...args: any[])=>any} Callback */\n\n/**\n * @typedef Handler\n * @property {Callback} callback The callback\n * @property {string} namespace The namespace\n * @property {number} priority The namespace\n */\n\n/**\n * @typedef Hook\n * @property {Handler[]} handlers Array of handlers\n * @property {number} runs Run counter\n */\n\n/**\n * @typedef Current\n * @property {string} name Hook name\n * @property {number} currentIndex The index\n */\n\n/**\n * @typedef {Record & {__current: Current[]}} Store\n */\n\n/**\n * @typedef {'actions' | 'filters'} StoreKey\n */\n\n/**\n * @typedef {import('./createHooks').Hooks} Hooks\n */\n\nexport var defaultHooks = createHooks();\nvar addAction = defaultHooks.addAction,\n addFilter = defaultHooks.addFilter,\n removeAction = defaultHooks.removeAction,\n removeFilter = defaultHooks.removeFilter,\n hasAction = defaultHooks.hasAction,\n hasFilter = defaultHooks.hasFilter,\n removeAllActions = defaultHooks.removeAllActions,\n removeAllFilters = defaultHooks.removeAllFilters,\n doAction = defaultHooks.doAction,\n applyFilters = defaultHooks.applyFilters,\n currentAction = defaultHooks.currentAction,\n currentFilter = defaultHooks.currentFilter,\n doingAction = defaultHooks.doingAction,\n doingFilter = defaultHooks.doingFilter,\n didAction = defaultHooks.didAction,\n didFilter = defaultHooks.didFilter,\n actions = defaultHooks.actions,\n filters = defaultHooks.filters;\nexport { createHooks, addAction, addFilter, removeAction, removeFilter, hasAction, hasFilter, removeAllActions, removeAllFilters, doAction, applyFilters, currentAction, currentFilter, doingAction, doingFilter, didAction, didFilter, actions, filters };\n//# sourceMappingURL=index.js.map","/**\n * Validate a hookName string.\n *\n * @param {string} hookName The hook name to validate. Should be a non empty string containing\n * only numbers, letters, dashes, periods and underscores. Also,\n * the hook name cannot begin with `__`.\n *\n * @return {boolean} Whether the hook name is valid.\n */\nfunction validateHookName(hookName) {\n if ('string' !== typeof hookName || '' === hookName) {\n // eslint-disable-next-line no-console\n console.error('The hook name must be a non-empty string.');\n return false;\n }\n\n if (/^__/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name cannot begin with `__`.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.');\n return false;\n }\n\n return true;\n}\n\nexport default validateHookName;\n//# sourceMappingURL=validateHookName.js.map","/**\n * Validate a namespace string.\n *\n * @param {string} namespace The namespace to validate - should take the form\n * `vendor/plugin/function`.\n *\n * @return {boolean} Whether the namespace is valid.\n */\nfunction validateNamespace(namespace) {\n if ('string' !== typeof namespace || '' === namespace) {\n // eslint-disable-next-line no-console\n console.error('The namespace must be a non-empty string.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.\\-\\/]*$/.test(namespace)) {\n // eslint-disable-next-line no-console\n console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.');\n return false;\n }\n\n return true;\n}\n\nexport default validateNamespace;\n//# sourceMappingURL=validateNamespace.js.map","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\nimport Tannin from 'tannin';\n/**\n * @typedef {Record} LocaleData\n */\n\n/**\n * Default locale data to use for Tannin domain when not otherwise provided.\n * Assumes an English plural forms expression.\n *\n * @type {LocaleData}\n */\n\nvar DEFAULT_LOCALE_DATA = {\n '': {\n /** @param {number} n */\n plural_forms: function plural_forms(n) {\n return n === 1 ? 0 : 1;\n }\n }\n};\n/*\n * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`,\n * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`.\n */\n\nvar I18N_HOOK_REGEXP = /^i18n\\.(n?gettext|has_translation)(_|$)/;\n/**\n * @typedef {(domain?: string) => LocaleData} GetLocaleData\n *\n * Returns locale data by domain in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData\n *\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData\n *\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/** @typedef {() => void} SubscribeCallback */\n\n/** @typedef {() => void} UnsubscribeCallback */\n\n/**\n * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe\n *\n * Subscribes to changes of locale data\n */\n\n/**\n * @typedef {(domain?: string) => string} GetFilterDomain\n * Retrieve the domain to use when calling domain-specific filters.\n */\n\n/**\n * @typedef {(text: string, domain?: string) => string} __\n *\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n */\n\n/**\n * @typedef {(text: string, context: string, domain?: string) => string} _x\n *\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n */\n\n/**\n * @typedef {() => boolean} IsRtl\n *\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n */\n\n/**\n * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation\n *\n * Check if there is a translation for a given string in singular form.\n */\n\n/** @typedef {import('@wordpress/hooks').Hooks} Hooks */\n\n/**\n * An i18n instance\n *\n * @typedef I18n\n * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape.\n * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data.\n * @property {__} __ Retrieve the translation of text.\n * @property {_x} _x Retrieve translated string with gettext context.\n * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied\n * number.\n * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n * @property {IsRtl} isRTL Check if current locale is RTL.\n * @property {HasTranslation} hasTranslation Check if there is a translation for a given string.\n */\n\n/**\n * Create an i18n instance\n *\n * @param {LocaleData} [initialData] Locale data configuration.\n * @param {string} [initialDomain] Domain for which configuration applies.\n * @param {Hooks} [hooks] Hooks implementation.\n * @return {I18n} I18n instance\n */\n\nexport var createI18n = function createI18n(initialData, initialDomain, hooks) {\n /**\n * The underlying instance of Tannin to which exported functions interface.\n *\n * @type {Tannin}\n */\n var tannin = new Tannin({});\n var listeners = new Set();\n\n var notifyListeners = function notifyListeners() {\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n /**\n * Subscribe to changes of locale data.\n *\n * @param {SubscribeCallback} callback Subscription callback.\n * @return {UnsubscribeCallback} Unsubscribe callback.\n */\n\n\n var subscribe = function subscribe(callback) {\n listeners.add(callback);\n return function () {\n return listeners.delete(callback);\n };\n };\n /** @type {GetLocaleData} */\n\n\n var getLocaleData = function getLocaleData() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return tannin.data[domain];\n };\n /**\n * @param {LocaleData} [data]\n * @param {string} [domain]\n */\n\n\n var doSetLocaleData = function doSetLocaleData(data) {\n var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits\n // a plural forms expression).\n\n tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']);\n };\n /** @type {SetLocaleData} */\n\n\n var setLocaleData = function setLocaleData(data, domain) {\n doSetLocaleData(data, domain);\n notifyListeners();\n };\n /** @type {ResetLocaleData} */\n\n\n var resetLocaleData = function resetLocaleData(data, domain) {\n // Reset all current Tannin locale data.\n tannin.data = {}; // Reset cached plural forms functions cache.\n\n tannin.pluralForms = {};\n setLocaleData(data, domain);\n };\n /**\n * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not\n * otherwise previously assigned.\n *\n * @param {string|undefined} domain Domain to retrieve the translated text.\n * @param {string|undefined} context Context information for the translators.\n * @param {string} single Text to translate if non-plural. Used as\n * fallback return value on a caught error.\n * @param {string} [plural] The text to be used if the number is\n * plural.\n * @param {number} [number] The number to compare against to use\n * either the singular or plural form.\n *\n * @return {string} The translated string.\n */\n\n\n var dcnpgettext = function dcnpgettext() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n var context = arguments.length > 1 ? arguments[1] : undefined;\n var single = arguments.length > 2 ? arguments[2] : undefined;\n var plural = arguments.length > 3 ? arguments[3] : undefined;\n var number = arguments.length > 4 ? arguments[4] : undefined;\n\n if (!tannin.data[domain]) {\n // use `doSetLocaleData` to set silently, without notifying listeners\n doSetLocaleData(undefined, domain);\n }\n\n return tannin.dcnpgettext(domain, context, single, plural, number);\n };\n /** @type {GetFilterDomain} */\n\n\n var getFilterDomain = function getFilterDomain() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return domain;\n };\n /** @type {__} */\n\n\n var __ = function __(text, domain) {\n var translation = dcnpgettext(domain, undefined, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext', translation, text, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain)\n );\n };\n /** @type {_x} */\n\n\n var _x = function _x(text, context, domain) {\n var translation = dcnpgettext(domain, context, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation based on context information.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain)\n );\n };\n /** @type {_n} */\n\n\n var _n = function _n(single, plural, number, domain) {\n var translation = dcnpgettext(domain, undefined, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain)\n );\n };\n /** @type {_nx} */\n\n\n var _nx = function _nx(single, plural, number, context, domain) {\n var translation = dcnpgettext(domain, context, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string with gettext context.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain)\n );\n };\n /** @type {IsRtl} */\n\n\n var isRTL = function isRTL() {\n return 'rtl' === _x('ltr', 'text direction');\n };\n /** @type {HasTranslation} */\n\n\n var hasTranslation = function hasTranslation(single, context, domain) {\n var _tannin$data, _tannin$data2;\n\n var key = context ? context + \"\\x04\" + single : single;\n var result = !!((_tannin$data = tannin.data) !== null && _tannin$data !== void 0 && (_tannin$data2 = _tannin$data[domain !== null && domain !== void 0 ? domain : 'default']) !== null && _tannin$data2 !== void 0 && _tannin$data2[key]);\n\n if (hooks) {\n /**\n * Filters the presence of a translation in the locale data.\n *\n * @param {boolean} hasTranslation Whether the translation is present or not..\n * @param {string} single The singular form of the translated text (used as key in locale data)\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation', result, single, context, domain);\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain);\n }\n\n return result;\n };\n\n if (initialData) {\n setLocaleData(initialData, initialDomain);\n }\n\n if (hooks) {\n /**\n * @param {string} hookName\n */\n var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) {\n if (I18N_HOOK_REGEXP.test(hookName)) {\n notifyListeners();\n }\n };\n\n hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved);\n hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved);\n }\n\n return {\n getLocaleData: getLocaleData,\n setLocaleData: setLocaleData,\n resetLocaleData: resetLocaleData,\n subscribe: subscribe,\n __: __,\n _x: _x,\n _n: _n,\n _nx: _nx,\n isRTL: isRTL,\n hasTranslation: hasTranslation\n };\n};\n//# sourceMappingURL=create-i18n.js.map","/**\n * Internal dependencies\n */\nimport { createI18n } from './create-i18n';\n/**\n * WordPress dependencies\n */\n\nimport { defaultHooks } from '@wordpress/hooks';\nvar i18n = createI18n(undefined, undefined, defaultHooks);\n/**\n * Default, singleton instance of `I18n`.\n */\n\nexport default i18n;\n/*\n * Comments in this file are duplicated from ./i18n due to\n * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722\n */\n\n/**\n * @typedef {import('./create-i18n').LocaleData} LocaleData\n * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback\n * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback\n */\n\n/**\n * Returns locale data by domain in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {string} [domain] Domain for which to get the data.\n * @return {LocaleData} Locale data.\n */\n\nexport var getLocaleData = i18n.getLocaleData.bind(i18n);\n/**\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var setLocaleData = i18n.setLocaleData.bind(i18n);\n/**\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var resetLocaleData = i18n.resetLocaleData.bind(i18n);\n/**\n * Subscribes to changes of locale data\n *\n * @param {SubscribeCallback} callback Subscription callback\n * @return {UnsubscribeCallback} Unsubscribe callback\n */\n\nexport var subscribe = i18n.subscribe.bind(i18n);\n/**\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n *\n * @param {string} text Text to translate.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated text.\n */\n\nexport var __ = i18n.__.bind(i18n);\n/**\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n *\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated context string without pipe.\n */\n\nexport var _x = i18n._x.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _n = i18n._n.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _nx = i18n._nx.bind(i18n);\n/**\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n *\n * @return {boolean} Whether locale is RTL.\n */\n\nexport var isRTL = i18n.isRTL.bind(i18n);\n/**\n * Check if there is a translation for a given string (in singular form).\n *\n * @param {string} single Singular form of the string to look up.\n * @param {string} [context] Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n * @return {boolean} Whether the translation exists or not.\n */\n\nexport var hasTranslation = i18n.hasTranslation.bind(i18n);\n//# sourceMappingURL=default-i18n.js.map","export { sprintf } from './sprintf';\nexport * from './create-i18n';\nexport { default as defaultI18n, setLocaleData, resetLocaleData, getLocaleData, subscribe, __, _x, _n, _nx, isRTL, hasTranslation } from './default-i18n';\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\nimport memoize from 'memize';\nimport sprintfjs from 'sprintf-js';\n/**\n * Log to console, once per message; or more precisely, per referentially equal\n * argument set. Because Jed throws errors, we log these to the console instead\n * to avoid crashing the application.\n *\n * @param {...*} args Arguments to pass to `console.error`\n */\n\nvar logErrorOnce = memoize(console.error); // eslint-disable-line no-console\n\n/**\n * Returns a formatted string. If an error occurs in applying the format, the\n * original format string is returned.\n *\n * @param {string} format The format of the string to generate.\n * @param {...*} args Arguments to apply to the format.\n *\n * @see https://www.npmjs.com/package/sprintf-js\n *\n * @return {string} The formatted string.\n */\n\nexport function sprintf(format) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return sprintfjs.sprintf.apply(sprintfjs, [format].concat(args));\n } catch (error) {\n logErrorOnce('sprintf error: \\n\\n' + error.toString());\n return format;\n }\n}\n//# sourceMappingURL=sprintf.js.map","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const DISABLED_CLASS = 'frm_disabled';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\nexport const SINGLE_SETTINGS_CLASS = 'frm-single-settings';\n\nexport const HOOKS = {\n\tSHOW_FIELD_SETTINGS: 'frmShowedFieldSettings'\n};\n","/**\n * Creates a page elements manager.\n *\n * @param {Object} [initialElements={}] An object containing initial DOM elements.\n * @throws {Error} Throws an error if the `initialElements` is not an object.\n * @return {Object} An object with methods to get and add elements.\n */\nexport function createPageElements( initialElements = {} ) {\n\tif ( typeof initialElements !== 'object' || initialElements === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageElements: initialElements must be a non-null object'\n\t\t);\n\t}\n\n\tlet elements = initialElements;\n\n\t/**\n\t * Retrieve the initialized essential DOM elements.\n\t *\n\t * @return {Object} The initialized elements object.\n\t */\n\tfunction getElements() {\n\t\treturn elements;\n\t}\n\n\t/**\n\t * Add new elements to the elements object.\n\t *\n\t * @param {Object} newElements An object containing new elements to be added.\n\t * @throws {Error} Throws an error if the `newElements` is not a non-null object.\n\t * @return {void} Updates the elements object by merging the new elements into it.\n\t */\n\tfunction addElements( newElements ) {\n\t\tif ( typeof newElements !== 'object' || newElements === null ) {\n\t\t\tthrow new Error(\n\t\t\t\t'addElements: newElements must be a non-null object'\n\t\t\t);\n\t\t}\n\n\t\telements = { ...elements, ...newElements };\n\t}\n\n\treturn { getElements, addElements };\n}\n","/**\n * Creates a page state manager.\n *\n * @param {Object} [initialState={}] An object containing the initial state.\n * @throws {Error} Throws an error if the `initialState` is not a plain object.\n * @return {Object} An object with methods to initialize, get, and set the page state.\n */\nexport function createPageState( initialState = {} ) {\n\tif ( typeof initialState !== 'object' || initialState === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageState: initialState must be a non-null object'\n\t\t);\n\t}\n\n\tlet state = initialState;\n\n\t/**\n\t * Returns the current page state.\n\t *\n\t * @return {Object|null} The current state of the page or null if not initialized.\n\t */\n\tconst getState = () => state;\n\n\t/**\n\t * Returns a specific property from the current page state.\n\t *\n\t * @param {string} propertyName The name of the property to retrieve.\n\t * @return {*} The value of the specified property, or null if it doesn't exist.\n\t */\n\tconst getSingleState = propertyName => {\n\t\tconst value = Reflect.get( state, propertyName );\n\n\t\t// We convert `undefined` to `null` for a consistent API.\n\t\t// This makes it easier for users to handle the results since all missing properties return `null`.\n\t\treturn value === undefined ? null : value;\n\t};\n\n\t/**\n\t * Updates the page state with new values.\n\t *\n\t * @param {Object} newState The new values to update the state with.\n\t * @throws {Error} Throws an error if `newState` is not a plain object.\n\t * @return {void}\n\t */\n\tconst setState = newState => {\n\t\tif ( typeof newState !== 'object' || newState === null ) {\n\t\t\tthrow new Error( 'setState: newState must be a non-null object' );\n\t\t}\n\n\t\tstate = { ...state, ...newState };\n\t};\n\n\t/**\n\t * Updates a specific property in the page state with a new value.\n\t *\n\t * @param {string} propertyName The name of the property to update.\n\t * @param {*} value The new value to set for the property.\n\t * @return {void}\n\t */\n\tconst setSingleState = ( propertyName, value ) => {\n\t\tif ( Reflect.has( state, propertyName ) ) {\n\t\t\tReflect.set( state, propertyName, value );\n\t\t}\n\t};\n\n\treturn { getState, getSingleState, setState, setSingleState };\n}\n","export * from './createPageElements';\nexport * from './createPageState';\n","export const PREFIX = 'frm-page-skeleton';\nexport const SEARCH_RESULT_ITEM = 'frm-card-item';\nexport const VIEWS = {\n\tALL_ITEMS: 'all-items',\n};\n","/**\n * External dependencies\n */\nimport { createPageElements } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEWS } from '../constants';\nimport {\n\tcreateEmptyStateElement,\n\tgetEmptyStateElements,\n} from './emptyStateElement';\n\nconst bodyContent = document.getElementById( 'post-body-content' );\nconst sidebar = document.getElementById( `${ PREFIX }-sidebar` );\n\n// Append empty state elements to body content\nconst emptyState = createEmptyStateElement();\nbodyContent?.appendChild( emptyState );\nconst emptyStateElements = getEmptyStateElements();\n\nexport const { getElements, addElements } = createPageElements( {\n\tbodyContent,\n\n\t// Sidebar elements\n\tsidebar,\n\tsearchInput: sidebar.querySelector( '.frm-search-input' ),\n\tcategoryItems: sidebar.querySelectorAll( `.${ PREFIX }-cat` ),\n\tallItemsCategory: sidebar.querySelector(\n\t\t`.${ PREFIX }-cat[data-category=\"${ VIEWS.ALL_ITEMS }\"]`\n\t),\n\n\t// Empty State elements\n\t...emptyStateElements,\n} );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX } from '../constants';\n\nconst { tag, div, a, img } = window.frmDom;\n\n/**\n * Create and return the Empty State HTML element.\n *\n * @return {HTMLElement} The Empty State element.\n */\nexport function createEmptyStateElement() {\n\tconst button = a( {\n\t\tclassName: 'button button-primary frm-button-primary',\n\t} );\n\tbutton.setAttribute( 'role', 'button' );\n\n\treturn div( {\n\t\tid: `${ PREFIX }-empty-state`,\n\t\tclassName: `frm-flex-col frm-flex-center frm-gap-md ${ HIDDEN_CLASS }`,\n\t\tchildren: [\n\t\t\timg( {\n\t\t\t\tsrc: `${ PLUGIN_URL }/images/page-skeleton/empty-state.svg`,\n\t\t\t\talt: __( 'Empty State', 'formidable' ),\n\t\t\t} ),\n\t\t\tdiv( {\n\t\t\t\tclassName: 'frmcenter',\n\t\t\t\tchildren: [\n\t\t\t\t\ttag( 'h2', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-title frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t\ttag( 'p', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-text frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t],\n\t\t\t} ),\n\t\t\tbutton,\n\t\t],\n\t} );\n}\n\n/**\n * Return the elements related to the Empty State.\n *\n * @return {Object} Object containing Empty State related DOM elements.\n */\nexport function getEmptyStateElements() {\n\tconst emptyState = document.querySelector( `#${ PREFIX }-empty-state` );\n\n\treturn {\n\t\temptyState,\n\t\temptyStateTitle: emptyState?.querySelector( `.${ PREFIX }-title` ),\n\t\temptyStateText: emptyState?.querySelector( `.${ PREFIX }-text` ),\n\t\temptyStateButton: emptyState?.querySelector( '.button' ),\n\t};\n}\n","export * from './elements';\n","/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { onClickPreventDefault, frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setState } from '../shared';\nimport { resetSearchInput } from '.';\n\n/**\n * Manages event handling for sidebar category links.\n *\n * @return {void}\n */\nexport function addCategoryEvents() {\n\tconst { categoryItems } = getElements();\n\n\t// Attach click and keyboard event listeners to each sidebar category\n\tcategoryItems.forEach( category => {\n\t\tonClickPreventDefault( category, onCategoryClick );\n\t\tcategory.addEventListener( 'keydown', onCategoryKeydown );\n\t} );\n}\n\n/**\n * Handles the click event on a category item.\n *\n * @private\n * @param {Event} event The click event object.\n */\nconst onCategoryClick = event => {\n\tconst clickedCategory = event.currentTarget;\n\tconst newSelectedCategory = clickedCategory.getAttribute( 'data-category' );\n\tlet { selectedCategory, selectedCategoryEl, notEmptySearchText } =\n\t\tgetState();\n\n\t// If the selected category hasn't changed, return early\n\tif ( selectedCategory === newSelectedCategory ) {\n\t\treturn;\n\t}\n\n\t/**\n\t * Filter hook to modify the selected category.\n\t *\n\t * @param {string} selectedCategory The selected category\n\t */\n\tselectedCategory = wp.hooks.applyFilters(\n\t\t'frmPage.selectedCategory',\n\t\tnewSelectedCategory\n\t);\n\n\t// Highlight the newly clicked category and update the application state\n\tselectedCategoryEl.classList.remove( CURRENT_CLASS );\n\tselectedCategoryEl = clickedCategory;\n\tselectedCategoryEl.classList.add( CURRENT_CLASS );\n\tsetState( { selectedCategory, selectedCategoryEl } );\n\n\t// Reset the search input if it contains text\n\tif ( notEmptySearchText ) {\n\t\tresetSearchInput();\n\t}\n\n\t/**\n\t * Trigger custom action to update category content.\n\t *\n\t * @param {string} selectedCategory The selected category.\n\t */\n\twp.hooks.doAction( 'frmPage.onCategoryClick', selectedCategory );\n\n\t// Smoothly display the updated UI elements\n\tconst { bodyContent } = getElements();\n\tnew frmAnimate( bodyContent ).fadeIn();\n};\n\n/**\n * Handles the keyboard event on a category item.\n *\n * @param {KeyboardEvent} event The keyboard event object.\n * @return {void}\n */\nfunction onCategoryKeydown( event ) {\n\t// Only respond to 'Enter' or 'Space' key presses\n\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\tevent.preventDefault();\n\t\tonCategoryClick( event );\n\t}\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Resets the value of the search input and triggers an input event.\n *\n * @return {void}\n */\nexport function resetSearchInput() {\n\tconst { searchInput } = getElements();\n\n\tsearchInput.value = '';\n\tsearchInput.dispatchEvent( new Event( 'input', { bubbles: true } ) );\n}\n\nexport * from './categoryListener';\n","export * from './constants';\nexport * from './elements';\nexport * from './shared';\nexport * from './events';\n","export * from './pageState';\n","/**\n * External dependencies\n */\nimport { createPageState } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEWS } from '../constants';\n\nconst { allItemsCategory } = getElements();\n\nexport const { getState, getSingleState, setState, setSingleState } =\n\tcreatePageState( {\n\t\tnotEmptySearchText: false,\n\t\tselectedCategory: VIEWS.ALL_ITEMS,\n\t\tselectedCategoryEl: allItemsCategory,\n\t} );\n","export class frmAnimate {\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements The elements to animate.\n\t * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d\n\t */\n\tconstructor( elements, type = 'default' ) {\n\t\tthis.elements = elements;\n\t\tthis.type = type;\n\n\t\tthis.prepareElements();\n\t}\n\n\t/**\n\t * Init animation - fadeIn.\n\t * Requires this.type = 'default';\n\t * ex: new frmAnimate( elements ).fadeIn();\n\t */\n\tfadeIn() {\n\t\tthis.applyStyleToElements( element => {\n\t\t\telement.classList.add( 'frm-fadein-up' );\n\n\t\t\telement.addEventListener( 'animationend', () => {\n\t\t\t\tthis.resetOpacity();\n\t\t\t\telement.classList.remove( 'frm-fadein-up' );\n\t\t\t}, { once: true } );\n\t\t} );\n\t}\n\n\t/**\n\t * Init animation - cascadeFadeIn.\n\t * Requires this.type = 'cascade'|'cascade-3d';\n\t * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn();\n\t * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn();\n\t *\n\t * @param {number} delay The transition delay value.\n\t */\n\tcascadeFadeIn( delay = 0.03 ) {\n\t\tsetTimeout( () => {\n\t\t\tthis.applyStyleToElements( ( element, index ) => {\n\t\t\t\telement.classList.remove( 'frm-animate' );\n\t\t\t\telement.style.transitionDelay = ( ( index + 1 ) * delay ) + 's';\n\t\t\t} );\n\t\t}, 200 );\n\t}\n\n\tprepareElements() {\n\t\tthis.applyStyleToElements( element => {\n\t\t\tif ( 'default' === this.type ) {\n\t\t\t\telement.style.opacity = '0.0';\n\t\t\t}\n\t\t\tif ( 'cascade' === this.type ) {\n\t\t\t\telement.classList.add( 'frm-init-cascade-animation' );\n\t\t\t}\n\t\t\tif ( 'cascade-3d' === this.type ) {\n\t\t\t\telement.classList.add( 'frm-init-fadein-3d' );\n\t\t\t}\n\t\t\telement.classList.add( 'frm-animate' );\n\t\t} );\n\t}\n\n\tresetOpacity() {\n\t\tthis.applyStyleToElements( element => element.style.opacity = '1.0' );\n\t}\n\n\tapplyStyleToElements( callback ) {\n\t\tif ( this.elements instanceof Element ) {\n\t\t\tcallback( this.elements, 0 );\n\t\t\treturn;\n\t\t}\n\t\tif ( 0 < this.elements.length ) {\n\t\t\tthis.elements.forEach( ( element, index ) => callback( element, index ) );\n\t\t}\n\t}\n}\n","// Initialize lastPromise with a resolved promise as the starting point for the queue\nlet lastPromise = Promise.resolve();\n\n/**\n * Adds a task to the request queue.\n *\n * @param {function(): Promise} task A function that returns a promise.\n * @return {Promise} The new last promise in the queue.\n */\nexport const addToRequestQueue = task => lastPromise = lastPromise.then( task ).catch( task );\n","/**\n * Internal dependencies\n */\nimport { hide, show } from '.';\n\n/**\n * Displays form validation error messages.\n *\n * @param {string} inputId The ID selector for the input field with the error.\n * @param {string} errorId The ID selector for the error message display element.\n * @param {string} type The categorization of the error (e.g., \"invalid\", \"empty\").\n * @param {string} [message] Optional. The specific error message to display.\n * @return {void}\n */\nexport const showFormError = ( inputId, errorId, type, message ) => {\n\tconst inputElement = document.querySelector( inputId );\n\tconst errorElement = document.querySelector( errorId );\n\n\tif ( ! inputElement || ! errorElement ) {\n\t\tconsole.warn( 'showFormError: Unable to find input or error element.' );\n\t\treturn;\n\t}\n\n\t// If a message is provided, update the span element's text that matches the error type\n\tif ( message ) {\n\t\tconst span = errorElement.querySelector( `span[frm-error=\"${ type }\"]` );\n\t\tif ( span ) {\n\t\t\tspan.textContent = message;\n\t\t}\n\t}\n\n\t// Assign the error type and make the error message visible\n\terrorElement.setAttribute( 'frm-error', type );\n\tshow( errorElement );\n\n\t// Hide the error message when the user starts typing in the faulty input field\n\tinputElement.addEventListener( 'keyup', () => {\n\t\thide( errorElement );\n\t}, { once: true } );\n};\n","export const { onClickPreventDefault, documentOn } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\n","/**\n * Initializes URL and URLSearchParams objects from the current window's location\n */\nconst url = new URL( window.location.href );\nconst urlParams = url.searchParams;\n\n/**\n * Gets the value of a specified query parameter from the current URL.\n *\n * @param {string} paramName The name of the query parameter to retrieve.\n * @return {string|null} The value associated with the specified query parameter name, or null if not found.\n */\nexport const getQueryParam = paramName => urlParams.get( paramName );\n\n/**\n * Removes a query parameter from the current URL and returns the updated URL string.\n *\n * @param {string} paramName The name of the query parameter to remove.\n * @return {string} The updated URL string.\n */\nexport const removeQueryParam = paramName => {\n\turlParams.delete( paramName );\n\turl.search = urlParams.toString();\n\treturn url.toString();\n};\n\n/**\n * Sets the value of a query parameter in the current URL and optionally updates the browser's history state.\n *\n * @param {string} paramName The name of the query parameter to set.\n * @param {string} paramValue The value to set for the query parameter.\n * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'.\n * @return {string} The updated URL string.\n */\nexport const setQueryParam = ( paramName, paramValue, updateMethod = 'pushState' ) => {\n\turlParams.set( paramName, paramValue );\n\turl.search = urlParams.toString();\n\n\tif ( [ 'pushState', 'replaceState' ].includes( updateMethod ) ) {\n\t\tconst state = { [ paramName ]: paramValue };\n\t\twindow.history[ updateMethod ]( state, '', url );\n\t}\n\n\treturn url.toString();\n};\n\n/**\n * Checks if a query parameter exists in the current URL.\n *\n * @param {string} paramName The name of the query parameter to check.\n * @return {boolean} True if the query parameter exists, otherwise false.\n */\nexport const hasQueryParam = paramName => urlParams.has( paramName );\n","/**\n * Validates an email address using a regular expression.\n *\n * @param {string} email The email address to validate.\n * @return {boolean} True if the email address is valid, otherwise false.\n */\nexport const isValidEmail = email =>\n\ttypeof email === 'string' ? /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/i.test( email ) : false;\n\n/**\n * Validates if the given element is an instance of HTMLElement.\n *\n * @param {any} element Element to be checked.\n * @return {boolean} True if it's an HTMLElement, otherwise false.\n */\nexport const isHTMLElement = element => element instanceof HTMLElement || console.warn( 'Invalid argument: Element must be an instance of HTMLElement' ) || false;\n\n/**\n * Checks if the given object is empty.\n *\n * @param {Object} obj The object to check.\n * @return {boolean} True if the object is empty, otherwise false.\n */\nexport const isEmptyObject = obj => Object.keys( obj ).length === 0 && obj.constructor === Object;\n","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\n\n/**\n * Shows specified elements by removing the hidden class.\n *\n * @param {Array} elements An array of elements to show.\n * @return {void}\n */\nexport const showElements = elements =>\n\tArray.from( elements )?.forEach( element => show( element ) );\n\n/**\n * Hides specified elements by adding the hidden class.\n *\n * @param {Array} elements An array of elements to hide.\n * @return {void}\n */\nexport const hideElements = elements =>\n\tArray.from( elements )?.forEach( element => hide( element ) );\n\n/**\n * Removes the hidden class to show the element.\n *\n * @param {Element} element The element to show.\n * @return {void}\n */\nexport const show = element => element?.classList.remove( HIDDEN_CLASS );\n\n/**\n * Adds the hidden class to hide the element.\n *\n * @param {Element} element The element to hide.\n * @return {void}\n */\nexport const hide = element => element?.classList.add( HIDDEN_CLASS );\n\n/**\n * Checks if an element is visible.\n *\n * @param {HTMLElement} element The HTML element to check for visibility.\n * @return {boolean} Returns true if the element is visible, otherwise false.\n */\nexport const isVisible = element => {\n\tconst styles = window.getComputedStyle( element );\n\treturn styles.getPropertyValue( 'display' ) !== 'none';\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, applicationsUrl } from '../shared';\nimport { addElements, getElements } from './elements';\n\nconst { tag, div, span, a, img } = window.frmDom;\n\n// Application templates element\nlet applicationTemplates;\n\n// Base URL for the thumbnail images of applications\nconst thumbnailBaseURL = `${ PLUGIN_URL }/images/applications/thumbnails`;\n\n/**\n * Create and return the application templates HTML element.\n *\n * @param {Object[]} applications Array of application objects.\n * @return {void}\n */\nexport function createApplicationTemplates( applications ) {\n\tif ( ! applications || ! applications.length ) {\n\t\treturn;\n\t}\n\n\tconst templateItems = applications.map( template => createTemplateItem( template ) );\n\n\tapplicationTemplates = div( {\n\t\tid: `${ PREFIX }-applications`,\n\t\tclassName: HIDDEN_CLASS,\n\t\tchildren: [\n\t\t\ttag( 'h2', {\n\t\t\t\ttext: __( 'Application Templates' ),\n\t\t\t\tclassName: 'frm-text-sm frm-mb-sm'\n\t\t\t} ),\n\t\t\ttag( 'ul', {\n\t\t\t\tclassName: `${ PREFIX }-list frm-list-grid-layout`,\n\t\t\t\tchildren: templateItems\n\t\t\t} )\n\t\t]\n\t} );\n}\n\n/**\n * Create and return an individual item element for a application template.\n *\n * @private\n * @param {Object} template The application object.\n * @return {HTMLElement} Element representing a single application template.\n */\nfunction createTemplateItem( template ) {\n\tconst { name, key, hasLiteThumbnail, isWebp } = template;\n\t// eslint-disable-next-line no-nested-ternary\n\tconst thumbnailURL = hasLiteThumbnail\n\t\t? ( isWebp ? `${ thumbnailBaseURL }/${ key }.webp` : `${ thumbnailBaseURL }/${ key }.png` )\n\t\t: `${ thumbnailBaseURL }/placeholder.svg`;\n\n\treturn tag( 'li', {\n\t\tclassName: 'frm-card-item',\n\t\tdata: {\n\t\t\thref: `${ applicationsUrl }&triggerViewApplicationModal=1&template=${ key }`,\n\t\t\t'frm-search-text': name.toLowerCase()\n\t\t},\n\t\tchildren: [\n\t\t\tdiv( {\n\t\t\t\tclassName: `${ PREFIX }-item-icon`,\n\t\t\t\tchild: img( { src: thumbnailURL } )\n\t\t\t} ),\n\t\t\tdiv( {\n\t\t\t\tclassName: `${ PREFIX }-item-body`,\n\t\t\t\tchildren: [\n\t\t\t\t\tspan( {\n\t\t\t\t\t\ttext: __( 'Ready Made Solution', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-meta-tag frm-orange-tag frm-text-xs'\n\t\t\t\t\t} ),\n\t\t\t\t\ttag( 'h3', {\n\t\t\t\t\t\ttext: name,\n\t\t\t\t\t\tclassName: 'frm-text-sm frm-font-medium frm-m-0'\n\t\t\t\t\t} ),\n\t\t\t\t\ta( {\n\t\t\t\t\t\ttext: __( 'See all applications', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-text-xs frm-font-semibold',\n\t\t\t\t\t\thref: applicationsUrl\n\t\t\t\t\t} )\n\t\t\t\t]\n\t\t\t} )\n\t\t]\n\t} );\n}\n\n/**\n * Inject application Templates elements into the DOM and the elements object.\n *\n * @return {void}\n */\nexport function addApplicationTemplatesElement() {\n\tconst elements = getElements();\n\n\tif ( elements.applicationTemplates || undefined === applicationTemplates ) {\n\t\treturn;\n\t}\n\n\telements.bodyContent.appendChild( applicationTemplates );\n\n\taddElements( {\n\t\tapplicationTemplates,\n\t\tapplicationTemplatesTitle: applicationTemplates.querySelector( 'h2' ),\n\t\tapplicationTemplatesList: applicationTemplates.querySelector( `.${ PREFIX }-list` ),\n\t\tapplicationTemplateItems: applicationTemplates.querySelectorAll( '.frm-card-item' )\n\t} );\n}\n","/**\n * External dependencies\n */\nimport { getElements, addElements, PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS } from '../shared';\n\nconst { bodyContent } = getElements();\nconst templatesList = document.getElementById( `${ PREFIX }-list` );\nconst customTemplatesSection = document.getElementById( `${ PREFIX }-custom-list-section` );\nconst favoritesCategory = document.querySelector(\n\t`.${ SKELETON_PREFIX }-cat[data-category=\"${ VIEW_SLUGS.FAVORITES }\"]`\n);\nconst modal = document.getElementById( `${ PREFIX }-modal` );\n\naddElements( {\n\t// Body elements\n\theaderCancelButton: document.getElementById( 'frm-publishing' )?.querySelector( 'a' ),\n\tcreateFormButton: document.getElementById( `${ PREFIX }-create-form` ),\n\tpageTitle: document.getElementById( `${ PREFIX }-page-title` ),\n\tpageTitleText: document.getElementById( `${ PREFIX }-page-title-text` ),\n\tpageTitleDivider: document.getElementById( `${ PREFIX }-page-title-divider` ),\n\tupsellBanner: document.getElementById( `${ PREFIX }-upsell-banner` ),\n\textraTemplateCountElements: document.querySelectorAll( `.${ PREFIX }-extra-templates-count` ),\n\n\t// Templates elements\n\ttemplatesList,\n\ttemplateItems: templatesList.querySelectorAll( '.frm-card-item' ),\n\tavailableTemplateItems: templatesList.querySelectorAll( `.frm-card-item:not(.${ PREFIX }-locked-item)` ),\n\ttwinFeaturedTemplateItems: templatesList.querySelectorAll( `.${ PREFIX }-featured-item` ),\n\tfeaturedTemplatesList: document.getElementById( `${ PREFIX }-featured-list` ),\n\n\t// Custom Templates Section elements\n\tcustomTemplatesSection,\n\tcustomTemplateItems: customTemplatesSection.querySelectorAll( '.frm-card-item' ),\n\tcustomTemplatesTitle: document.getElementById( `${ PREFIX }-custom-list-title` ),\n\tcustomTemplatesList: document.getElementById( `${ PREFIX }-custom-list` ),\n\n\t// Sidebar elements\n\tfavoritesCategory,\n\tfavoritesCategoryCountEl: favoritesCategory?.querySelector(\n\t\t`.${ SKELETON_PREFIX }-cat-count`\n\t),\n\tavailableTemplatesCategory: document.querySelector(\n\t\t`.${ SKELETON_PREFIX }-cat[data-category=\"${ VIEW_SLUGS.AVAILABLE_TEMPLATES }\"]`\n\t),\n\n\t// Modal elements\n\tmodal,\n\tmodalItems: modal?.querySelectorAll( `.${ PREFIX }-modal-item` ),\n\t// Create New Template Modal\n\tshowCreateTemplateModalButton: document.getElementById( 'frm-show-create-template-modal' ),\n\tcreateTemplateModal: document.getElementById( 'frm-create-template-modal' ),\n\tcreateTemplateFormsDropdown: document.getElementById( 'frm-create-template-modal-forms-select' ),\n\tcreateTemplateName: document.getElementById( 'frm_create_template_name' ),\n\tcreateTemplateDescription: document.getElementById( 'frm_create_template_description' ),\n\tcreateTemplateButton: document.getElementById( 'frm-create-template-button' ),\n\t// Renew Account Modal\n\trenewAccountModal: document.getElementById( 'frm-renew-modal' ),\n\t// Upgrade Modal\n\tupgradeModal: document.getElementById( 'frm-form-upgrade-modal' ),\n\tupgradeModalTemplateNames: modal?.querySelectorAll( '.frm-upgrade-modal-template-name' ),\n\tupgradeModalPlansIcons: modal?.querySelectorAll( '.frm-upgrade-modal-plan-icon' ),\n\tupgradeModalLink: document.getElementById( 'frm-upgrade-modal-link' ),\n\n\t// New Template Form elements\n\tnewTemplateForm: document.getElementById( 'frm-new-template' ),\n\tnewTemplateNameInput: document.getElementById( 'frm_template_name' ),\n\tnewTemplateDescriptionInput: document.getElementById( 'frm_template_desc' ),\n\tnewTemplateLinkInput: document.getElementById( 'frm_link' ),\n\tnewTemplateActionInput: document.getElementById( 'frm_action_type' ),\n\n\t// Add children of the bodyContent to the elements object.\n\tbodyContentChildren: bodyContent?.children\n} );\n\nexport { getElements, addElements };\n","export * from './elements';\nexport * from './applicationTemplatesElement';\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for an application template.\n *\n * @return {void}\n */\nexport function addApplicationTemplateEvents() {\n\tconst { applicationTemplateItems } = getElements();\n\n\tif ( undefined === applicationTemplateItems ) {\n\t\treturn;\n\t}\n\n\t// Attach click event listener\n\tapplicationTemplateItems.forEach( template => {\n\t\ttemplate.addEventListener( 'click', onApplicationTemplateClick );\n\t} );\n}\n\n/**\n * Handles the click event on an application template.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onApplicationTemplateClick = event => {\n\t// Check if the clicked element is an anchor tag\n\tif ( event.target.closest( 'a' ) ) {\n\t\treturn;\n\t}\n\n\tconst applicationTemplate = event.currentTarget;\n\twindow.location.href = applicationTemplate.dataset.href;\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for the \"Create a blank form\" button.\n *\n * @return {void}\n */\nfunction addCreateFormButtonEvents() {\n\tconst { createFormButton } = getElements();\n\n\t// Attach click event listener\n\tonClickPreventDefault( createFormButton, onCreateFormButtonClick );\n}\n\n/**\n * Handles the click event on the \"Create a blank form\" button.\n *\n * @private\n * @return {void}\n */\nconst onCreateFormButtonClick = () => {\n\tconst { createFormButton, newTemplateForm, newTemplateNameInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\n\tnewTemplateNameInput.value = '';\n\tnewTemplateActionInput.value = 'frm_install_form';\n\tinstallNewForm( newTemplateForm, 'frm_install_form', createFormButton );\n};\n\nexport default addCreateFormButtonEvents;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState } from '../shared';\nimport { showCreateTemplateModal } from '../ui';\nimport { isCustomCategory } from '../utils';\n\n/**\n * Manages event handling for the 'Create New Template' modal.\n *\n * @return {void}\n */\nfunction addCreateTemplateEvents() {\n\tconst {\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton,\n\t\tshowCreateTemplateModalButton,\n\t\temptyStateButton\n\t} = getElements();\n\n\t// Show the 'Create New Template' modal when either empty state or show modal button is clicked\n\tonClickPreventDefault( showCreateTemplateModalButton, onShowCreateTemplateModalButtonClick );\n\tonClickPreventDefault( emptyStateButton, onShowCreateTemplateModalButtonClick );\n\n\t// Handle changes in the forms selection dropdown for creating a new template\n\tcreateTemplateFormsDropdown.addEventListener( 'change', onFormsSelectChange );\n\n\t// Create a new template when the create button inside the modal is clicked\n\tonClickPreventDefault( createTemplateButton, onCreateTemplateButtonClick );\n}\n\n/**\n * Handles the click event on the 'Create Template' button, showing the 'Create New Template' modal.\n *\n * @private\n * @return {void}\n */\nconst onShowCreateTemplateModalButtonClick = () => {\n\tconst { selectedCategory } = getState();\n\tif ( ! isCustomCategory( selectedCategory ) ) {\n\t\treturn;\n\t}\n\n\tshowCreateTemplateModal();\n};\n\n/**\n * Handles changes in the forms selection dropdown for creating a new template.\n *\n * @private\n * @return {void}\n */\nconst onFormsSelectChange = () => {\n\tconst { createTemplateFormsDropdown: formsSelect } = getElements();\n\tconst formId = formsSelect.value;\n\n\tif ( ! formId || formId === 'no-forms' ) {\n\t\ttoggleDisableModalElements( true );\n\t\treturn;\n\t}\n\n\ttoggleDisableModalElements( false );\n\n\tconst selectedOption = formsSelect.options[ formsSelect.selectedIndex ];\n\tconst formDescription = selectedOption.dataset.description.trim();\n\n\tlet formName = selectedOption.dataset.name.trim();\n\tconst templateString = ` ${ __( 'Template', 'formidable' ) }`;\n\tif ( ! formName.endsWith( templateString ) ) {\n\t\tformName += templateString;\n\t}\n\n\tconst { createTemplateName, createTemplateDescription } = getElements();\n\tcreateTemplateName.value = formName;\n\tcreateTemplateDescription.value = formDescription;\n};\n\n/**\n * Toggles the disabled state of elements in the 'Create Template' modal.\n *\n * @private\n * @param {boolean} shouldDisable True to disable, false to enable.\n * @return {void}\n */\nconst toggleDisableModalElements = shouldDisable => {\n\tconst { createTemplateName, createTemplateDescription, createTemplateButton } = getElements();\n\n\t// Toggle the disabled attribute for input and textarea\n\t[ createTemplateName, createTemplateDescription ].forEach( element => {\n\t\telement.disabled = shouldDisable;\n\t\tif ( shouldDisable ) {\n\t\t\telement.value = ''; // Clear the content for input and textarea\n\t\t}\n\t} );\n\n\t// Toggle the disabled class for the button\n\tcreateTemplateButton.classList.toggle( 'disabled', shouldDisable );\n};\n\n/**\n * Handles the click event on the 'Create Template' button to create a new template.\n *\n * @private\n * @return {void}\n */\nconst onCreateTemplateButtonClick = () => {\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst actionName = 'frm_create_template';\n\tconst {\n\t\tnewTemplateForm,\n\t\tnewTemplateActionInput,\n\t\tnewTemplateNameInput,\n\t\tnewTemplateDescriptionInput,\n\t\tnewTemplateLinkInput,\n\t\tcreateTemplateName,\n\t\tcreateTemplateDescription,\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton\n\t} = getElements();\n\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateNameInput.value = createTemplateName.value.trim();\n\tnewTemplateDescriptionInput.value = createTemplateDescription.value.trim();\n\tnewTemplateLinkInput.value = createTemplateFormsDropdown.value;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, createTemplateButton );\n};\n\nexport default addCreateTemplateEvents;\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault, addToRequestQueue, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, getState, setSingleState } from '../shared';\nimport { showFavoritesEmptyState } from '../ui';\nimport { isFavoriteTemplate, isCustomTemplate, isFeaturedTemplate, isFavoritesCategory } from '../utils';\n\nconst FAVORITE_BUTTON_CLASS = `.${ PREFIX }-item-favorite-button`;\nconst HEART_ICON_SELECTOR = `${ FAVORITE_BUTTON_CLASS } use`;\nconst FILLED_HEART_ICON = '#frm_heart_solid_icon';\nconst LINEAR_HEART_ICON = '#frm_heart_icon';\nconst OPERATION = {\n\tADD: 'add',\n\tREMOVE: 'remove'\n};\n\n/**\n * Manages event handling for favorite buttons.\n *\n * @return {void}\n */\nfunction addFavoriteButtonEvents() {\n\tconst favoriteButtons = document.querySelectorAll( FAVORITE_BUTTON_CLASS );\n\n\t// Attach click event listeners to each favorite button\n\tfavoriteButtons.forEach( favoriteButton =>\n\t\tonClickPreventDefault( favoriteButton, onFavoriteButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the add to favorite button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onFavoriteButtonClick = event => {\n\tconst favoriteButton = event.currentTarget;\n\tconst { templatesList, featuredTemplatesList, favoritesCategoryCountEl, customTemplatesTitle } = getElements();\n\n\t/**\n\t * Get necessary template information\n\t */\n\tconst template = favoriteButton.closest( '.frm-card-item' );\n\tconst templateId = template.dataset.id;\n\tconst isFavorited = isFavoriteTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\tconst isTemplateFeatured = isFeaturedTemplate( template );\n\n\t/**\n\t * Toggle the favorite status in the UI.\n\t * If template is featured, toggle its twin version in the respective list.\n\t */\n\tlet twinFeaturedTemplate = null;\n\n\ttemplate.classList.toggle( `${ PREFIX }-favorite-item`, ! isFavorited );\n\tif ( isTemplateFeatured ) {\n\t\tconst templateList = template.closest( `#${ PREFIX }-list` )\n\t\t\t? featuredTemplatesList\n\t\t\t: templatesList;\n\n\t\tif ( templateList ) {\n\t\t\ttwinFeaturedTemplate = templateList.querySelector(\n\t\t\t\t`.frm-card-item[data-id=\"${ templateId }\"]`\n\t\t\t);\n\t\t\t// Toggle twin template's favorite status\n\t\t\ttwinFeaturedTemplate.classList.toggle(\n\t\t\t\t`${ PREFIX }-favorite-item`,\n\t\t\t\t! isFavorited\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Update favorite counts and icons based on the new state\n\t */\n\tconst { selectedCategory, favoritesCount } = getState();\n\tconst currentOperation = isFavorited ? OPERATION.REMOVE : OPERATION.ADD;\n\tconst heartIcon = template.querySelector( HEART_ICON_SELECTOR );\n\tconst twinTemplateHeartIcon =\n\t\ttwinFeaturedTemplate?.querySelector( HEART_ICON_SELECTOR );\n\n\tif ( OPERATION.ADD === currentOperation ) {\n\t\t// Increment favorite counts\n\t\t++favoritesCount.total;\n\t\tisTemplateCustom ? ++favoritesCount.custom : ++favoritesCount.default; // eslint-disable-line no-unused-expressions\n\t\t// Set heart icon to filled\n\t\theartIcon.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t} else {\n\t\t// Decrement favorite counts\n\t\t--favoritesCount.total;\n\t\tisTemplateCustom ? --favoritesCount.custom : --favoritesCount.default; // eslint-disable-line no-unused-expressions\n\t\t// Set heart icon to outline\n\t\theartIcon.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t}\n\n\t// Update UI and state to reflect new favorite counts\n\tfavoritesCategoryCountEl.textContent = favoritesCount.total;\n\tsetSingleState( 'favoritesCount', favoritesCount );\n\n\t/**\n\t * Hide UI elements if 'Favorites' is active and counts are zero.\n\t */\n\tif ( isFavoritesCategory( selectedCategory ) ) {\n\t\tif ( 0 === favoritesCount.total ) {\n\t\t\tshowFavoritesEmptyState();\n\t\t}\n\n\t\thide( template );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( templatesList );\n\t\t}\n\n\t\tif ( 0 === favoritesCount.custom || 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Update server-side data for favorite templates\n\taddToRequestQueue( () => updateFavoriteTemplate( templateId, currentOperation, isTemplateCustom ) );\n};\n\n/**\n * Update server-side data for favorite templates.\n *\n * @param {string} id The template ID.\n * @param {string} operation The operation to perform ('add' or 'remove').\n * @param {boolean} isCustom Flag indicating whether the template is custom.\n * @return {Promise} The result of the server-side update.\n */\nfunction updateFavoriteTemplate( id, operation, isCustom ) {\n\tconst formData = new FormData();\n\tconst { doJsonPost } = frmDom.ajax;\n\n\tformData.append( 'template_id', id );\n\tformData.append( 'operation', operation );\n\tformData.append( 'is_custom_template', isCustom );\n\n\treturn doJsonPost( 'add_or_remove_favorite_template', formData );\n}\n\nexport default addFavoriteButtonEvents;\n","/**\n * External dependencies\n */\nimport { addCategoryEvents } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport addCreateFormButtonEvents from './createFormButtonListener';\nimport addFavoriteButtonEvents from './favoriteButtonListener';\nimport addUseTemplateButtonEvents from './useTemplateButtonListener';\nimport addSearchEvents from './searchListener';\nimport addCreateTemplateEvents from './createTemplateListeners';\nimport { showSelectedCategory } from '../ui';\n\n/**\n * Attaches event listeners for handling user interactions.\n *\n * @return {void}\n */\nexport function addEventListeners() {\n\taddCategoryEvents();\n\twp.hooks.addAction( 'frmPage.onCategoryClick', 'frmFormTemplates', selectedCategory => {\n\t\t// Display templates of the selected category\n\t\tshowSelectedCategory( selectedCategory );\n\t} );\n\n\taddCreateFormButtonEvents();\n\taddFavoriteButtonEvents();\n\taddUseTemplateButtonEvents();\n\taddSearchEvents();\n\taddCreateTemplateEvents();\n}\n\nexport { addApplicationTemplateEvents } from './applicationTemplateListener';\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\nimport { resetSearchInput } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setSingleState, VIEW_SLUGS } from '../shared';\nimport { showSearchState, displaySearchElements } from '../ui';\n\nconst { init: initSearch } = window.frmDom.search;\n\n/**\n * Adds search-related event listeners by calling the 'initSearch' function.\n *\n * @see frmDom.search method\n * @return {void}\n */\nfunction addSearchEvents() {\n\tconst { searchInput, emptyStateButton } = getElements();\n\n\tinitSearch( searchInput, 'frm-card-item', { handleSearchResult } );\n\tonClickPreventDefault( emptyStateButton, onEmptyStateButtonClick );\n}\n\n/**\n * Manages UI state based on search results and input value.\n *\n * @private\n * @param {Object} args Contains flags for search status.\n * @param {boolean} args.foundSomething True if search yielded results.\n * @param {boolean} args.notEmptySearchText True if search input is not empty.\n * @param {Event} event The event object (input, search, or change event).\n * @return {void}\n */\nfunction handleSearchResult( { foundSomething, notEmptySearchText }, event ) {\n\t// Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events,\n\t// triggering this method twice on 'x' button click.\n\tif ( event && event.type === 'search' && event.target.value === '' ) {\n\t\treturn;\n\t}\n\n\tconst state = getState();\n\tconst { allItemsCategory } = getElements();\n\n\tsetSingleState( 'notEmptySearchText', notEmptySearchText );\n\n\t// Revert to 'All Templates' if search and selected category are both empty\n\tif ( ! state.notEmptySearchText && ! state.selectedCategory ) {\n\t\tallItemsCategory.dispatchEvent(\n\t\t\tnew Event( 'click', { bubbles: true } )\n\t\t);\n\n\t\treturn;\n\t}\n\n\t// Display search state if a category is selected\n\tif ( state.selectedCategory ) {\n\t\tshowSearchState( notEmptySearchText );\n\n\t\t// Setting \"selectedCategory\" to an empty string as a flag for search state\n\t\tif ( notEmptySearchText ) {\n\t\t\tsetSingleState( 'selectedCategory', '' );\n\t\t}\n\t}\n\n\tdisplaySearchElements( foundSomething, notEmptySearchText );\n}\n\n/**\n * Handles the click event on the empty state button.\n *\n * @private\n * @return {void}\n */\nconst onEmptyStateButtonClick = () => {\n\tconst { emptyState } = getElements();\n\tif ( VIEW_SLUGS.SEARCH !== emptyState.dataset?.view ) {\n\t\treturn;\n\t}\n\n\t// Set selectedCategory to '' as search state flag that triggers ALL_ITEMS category if search input is empty\n\t// @see handleSearchResult()\n\tsetSingleState( 'selectedCategory', '' );\n\tresetSearchInput();\n\n\tconst { searchInput } = getElements();\n\tsearchInput.focus();\n};\n\nexport default addSearchEvents;\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, setSingleState } from '../shared';\nimport { showLockedTemplateModal } from '../ui/';\nimport { isCustomTemplate, isLockedTemplate } from '../utils';\n\n/**\n * Manages event handling for use template buttons.\n *\n * @return {void}\n */\nfunction addUseTemplateButtonEvents() {\n\tconst useTemplateButtons = document.querySelectorAll( `.${ PREFIX }-use-template-button` );\n\n\t// Attach click event listeners to each use template button\n\tuseTemplateButtons.forEach( useTemplateButton =>\n\t\tuseTemplateButton.addEventListener( 'click', onUseTemplateButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the use template button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onUseTemplateButtonClick = event => {\n\tconst useTemplateButton = event.currentTarget;\n\n\tconst template = useTemplateButton.closest( '.frm-card-item' );\n\tconst isLocked = isLockedTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\n\t// Allow the default link behavior, if the template is custom and not locked\n\tif ( ! isLocked && isTemplateCustom ) {\n\t\treturn;\n\t}\n\n\t// Prevent the default link behavior for non-custom or locked templates\n\tevent.preventDefault();\n\n\t// Update app state with selected template\n\tsetSingleState( 'selectedTemplate', template );\n\n\t// Handle locked templates\n\tif ( isLocked ) {\n\t\tshowLockedTemplateModal( template );\n\t\treturn;\n\t}\n\n\t// Prepare for new template installation\n\tconst { newTemplateForm, newTemplateNameInput, newTemplateDescriptionInput, newTemplateLinkInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst templateDescription = template.querySelector( '.frm-form-templates-item-description' ).textContent.trim();\n\tconst actionName = 'frm_install_template';\n\n\tnewTemplateNameInput.value = templateName;\n\tnewTemplateDescriptionInput.value = templateDescription;\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateLinkInput.value = useTemplateButton.href;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, useTemplateButton );\n};\n\nexport default addUseTemplateButtonEvents;\n","/**\n * Internal dependencies\n */\nimport { setupInitialView, initializeModal } from './ui';\nimport { buildCategorizedTemplates, maybeAddApplicationTemplates } from './templates';\nimport { addEventListeners } from './events';\n\n/**\n * Initializes form templates.\n *\n * @return {void}\n */\nfunction initializeFormTemplates() {\n\tmaybeAddApplicationTemplates();\n\tinitializeModal();\n\tbuildCategorizedTemplates();\n\tsetupInitialView();\n\taddEventListeners();\n}\n\nexport default initializeFormTemplates;\n","export const { canAccessApplicationDashboard, applicationsUrl } = window.frmGlobal;\nexport const { FEATURED_TEMPLATES_KEYS, upgradeLink } = window.frmFormTemplatesVars;\n\nexport const PREFIX = 'frm-form-templates';\n\nexport const VIEW_SLUGS = {\n\tAVAILABLE_TEMPLATES: 'available-templates',\n\tFAVORITES: 'favorites',\n\tCUSTOM: 'custom',\n\tSEARCH: 'search'\n};\n\nexport const PLANS = {\n\tBASIC: 'basic',\n\tPLUS: 'plus',\n\tBUSINESS: 'business',\n\tELITE: 'elite',\n\tRENEW: 'renew',\n\tFREE: 'free'\n};\n\nexport const MODAL_SIZES = {\n\tGENERAL: '440px',\n\tCREATE_TEMPLATE: '550px'\n};\n","export * from './constants';\nexport * from './pageState';\n","/**\n * External dependencies\n */\nimport { getState, getSingleState, setState, setSingleState } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nconst { templatesCount, favoritesCount, customCount } = window.frmFormTemplatesVars;\nconst { availableTemplateItems } = getElements();\nconst availableTemplatesCount = availableTemplateItems.length;\n\nsetState( {\n\tavailableTemplatesCount,\n\tcustomCount: Number( customCount ),\n\textraTemplatesCount: templatesCount - availableTemplatesCount,\n\tfavoritesCount,\n\tselectedTemplate: false,\n} );\n\nexport { getState, getSingleState, setState, setSingleState };\n","/**\n * Internal dependencies\n */\nimport { addApplicationTemplatesElement, createApplicationTemplates } from '../elements';\nimport { addApplicationTemplateEvents } from '../events';\nimport { canAccessApplicationDashboard } from '../shared';\n\n/**\n * Adds application templates if the user has dashboard access.\n *\n * @return {void}\n */\nexport function maybeAddApplicationTemplates() {\n\t// Exit if the user doesn't have permission to see application dashboard\n\tif ( ! canAccessApplicationDashboard ) {\n\t\treturn;\n\t}\n\n\tconst { doJsonFetch } = frmDom.ajax;\n\n\tdoJsonFetch( 'get_applications_data&view=templates' ).then( setupApplicationTemplates );\n}\n\n/**\n * Sets up application templates by creating HTML elements, injecting them into the DOM,\n * and adding event handlers.\n *\n * @private\n * @param {Object} data The data object containing information for application templates.\n * @return {void}\n */\nfunction setupApplicationTemplates( data ) {\n\t// Create application templates\n\tcreateApplicationTemplates( data.templates );\n\n\t// Inject templates into the DOM\n\taddApplicationTemplatesElement();\n\n\t// Set up event handling\n\taddApplicationTemplateEvents();\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nexport const categorizedTemplates = {};\n\n/**\n * Builds a categorized list of templates.\n *\n * @return {void}\n */\nexport function buildCategorizedTemplates() {\n\tconst { templateItems } = getElements();\n\n\ttemplateItems.forEach( template => {\n\t\t// Extract and split the categories from data attribute\n\t\tconst categories = template.getAttribute( 'data-categories' ).split( ',' );\n\n\t\tcategories.forEach( category => {\n\t\t\t// Initialize the category array if not already done\n\t\t\tif ( ! categorizedTemplates[ category ] ) {\n\t\t\t\tcategorizedTemplates[ category ] = [];\n\t\t\t}\n\n\t\t\t// Add the template to the appropriate category\n\t\t\tcategorizedTemplates[ category ].push( template );\n\t\t} );\n\t} );\n}\n","export * from './categorizeTemplates';\nexport * from './applicationTemplates';\n","export { default as setupInitialView } from './setupInitialView';\nexport * from './initializeModal';\nexport * from './pageTitle';\nexport * from './showHeaderCancelButton';\nexport * from './showSelectedCategory';\nexport * from './searchState';\nexport * from './showEmptyState';\nexport * from './showModal';\n","import { MODAL_SIZES } from '../shared';\n\nlet modalWidget = null;\n\n/**\n * Initialize the modal widget.\n *\n * @return {void}\n */\nexport async function initializeModal() {\n\tconst { initModal, offsetModalY } = window.frmAdminBuild;\n\n\tmodalWidget = initModal( '#frm-form-templates-modal', MODAL_SIZES.GENERAL );\n\n\t// Set the vertical offset for the modal\n\tif ( modalWidget ) {\n\t\toffsetModalY( modalWidget, '103px' );\n\t}\n\n\t// Customize the confirm modal appearance: adjusting its width and vertical position\n\twp.hooks.addAction( 'frmAdmin.beforeOpenConfirmModal', 'frmFormTemplates', options => {\n\t\tconst { $info: confirmModal } = options;\n\n\t\tconfirmModal.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\t\toffsetModalY( confirmModal, '103px' );\n\t} );\n}\n\n/**\n * Retrieve the modal widget.\n *\n * @return {Object|false} The modal widget or false.\n */\nexport function getModalWidget() {\n\treturn modalWidget;\n}\n","/**\n * External dependencies\n */\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\n\n/**\n * Sets the page title based on a given string or the currently selected category.\n *\n * @param {string} [title] Optional title to display.\n * @return {void}\n */\nexport function updatePageTitle( title ) {\n\tconst { pageTitleText } = getElements();\n\n\tconst newTitle =\n\t\ttitle ||\n\t\tgetSingleState( 'selectedCategoryEl' ).querySelector( `.${ SKELETON_PREFIX }-cat-text` ).textContent;\n\n\tpageTitleText.textContent = newTitle;\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { frmAnimate, showElements, hideElements, show, hide, isVisible } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\nimport { showSearchEmptyState, updatePageTitle } from '.';\n\n/**\n * Updates the UI to display the search state.\n *\n * @param {boolean} notEmptySearchText True if search input is not empty.\n * @return {void}\n */\nexport function showSearchState( notEmptySearchText ) {\n\tconst { bodyContent, bodyContentChildren, pageTitle, templatesList, applicationTemplates } = getElements();\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\t// Remove highlighting from the currently selected category if the search text is not empty\n\tif ( notEmptySearchText ) {\n\t\tgetSingleState( 'selectedCategoryEl' ).classList.remove( CURRENT_CLASS );\n\t}\n\n\t// Hide non-relevant elements in the body content\n\thideElements( bodyContentChildren );\n\n\t// Update the page title and display relevant elements\n\tupdatePageTitle( __( 'Search Result', 'formidable' ) );\n\tshowElements( [ pageTitle, templatesList, applicationTemplates ] );\n\n\t// Smoothly display the updated UI elements\n\tbodyContentAnimate.fadeIn();\n}\n\n/**\n * Displays search results based on search outcome.\n *\n * @param {boolean} foundSomething True if search yielded results.\n * @return {void}\n */\nexport function displaySearchElements( foundSomething ) {\n\t// Show empty state if no templates found\n\tif ( ! foundSomething ) {\n\t\tshowSearchEmptyState();\n\t\treturn;\n\t}\n\n\t// Hide empty state if currently displayed\n\tconst { emptyState } = getElements();\n\tif ( isVisible( emptyState ) ) {\n\t\tconst { pageTitle } = getElements();\n\t\thide( emptyState );\n\t\tshow( pageTitle );\n\t}\n\n\tconst { templatesList, applicationTemplates, applicationTemplatesTitle, applicationTemplatesList } = getElements();\n\n\tshowElements( [ templatesList, applicationTemplates, applicationTemplatesTitle ] );\n\n\tif ( templatesList.offsetHeight === 0 ) {\n\t\thideElements( [ templatesList, applicationTemplatesTitle ] );\n\t}\n\n\tif ( applicationTemplatesList?.offsetHeight === 0 ) {\n\t\thide( applicationTemplates );\n\t}\n}\n","/**\n * External dependencies\n */\nimport { HIDE_JS_CLASS } from 'core/constants';\nimport { frmAnimate, hasQueryParam, hideElements, show, hide } from 'core/utils';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState } from '../shared';\nimport { showHeaderCancelButton } from './';\n\n/**\n * Sets up the initial view, performing any required\n * DOM manipulations for proper element presentation.\n *\n * @return {void}\n */\nfunction setupInitialView() {\n\tconst {\n\t\tsidebar,\n\t\tsearchInput,\n\t\tbodyContent,\n\t\ttwinFeaturedTemplateItems,\n\t\tavailableTemplatesCategory\n\t} = getElements();\n\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\tsearchInput.value = '';\n\n\t// Hide the twin featured template items\n\thideElements( twinFeaturedTemplateItems );\n\n\t// Set the 'Available Templates' count if it is present\n\tif ( availableTemplatesCategory ) {\n\t\tconst { availableTemplatesCount } = getState();\n\t\tavailableTemplatesCategory.querySelector( `.${ SKELETON_PREFIX }-cat-count` ).textContent = availableTemplatesCount;\n\t}\n\n\t// Update extra templates count\n\tconst { extraTemplateCountElements } = getElements();\n\tconst { extraTemplatesCount } = getState();\n\textraTemplateCountElements.forEach( element => element.textContent = extraTemplatesCount );\n\n\t// Smoothly display the updated UI elements\n\tbodyContent.classList.remove( HIDE_JS_CLASS );\n\tsidebar.classList.remove( HIDE_JS_CLASS );\n\tbodyContentAnimate.fadeIn();\n\tshow( sidebar );\n\n\t// Show the \"Cancel\" button in the header if the 'return_page' query param is present\n\tif ( hasQueryParam( 'return_page' ) ) {\n\t\tshowHeaderCancelButton();\n\t}\n}\n\nexport default setupInitialView;\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEW_SLUGS, getState } from '../shared';\n\n/**\n * Display the search-empty state.\n *\n * @return {void}\n */\nexport function showSearchEmptyState() {\n\tconst { notEmptySearchText } = getState();\n\tconst { pageTitle, emptyState, emptyStateButton, applicationTemplates } = getElements();\n\n\t// Toggle visibility and remove attributes based on search status\n\tif ( VIEW_SLUGS.SEARCH === emptyState.dataset?.view ) {\n\t\tif ( notEmptySearchText ) {\n\t\t\tshow( emptyState );\n\t\t\thideElements( [ pageTitle, applicationTemplates ] );\n\t\t} else {\n\t\t\thide( emptyState );\n\t\t\temptyState.removeAttribute( 'data-view' );\n\t\t}\n\n\t\treturn;\n\t}\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.SEARCH );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No templates found', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'Sorry, we didn\\'t find any templates that match your criteria.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Start from Scratch', 'formidable' );\n\n\t// Display the empty state\n\thideElements( [ pageTitle, applicationTemplates ] );\n\tshowElements( [ emptyState, emptyStateButton ] );\n}\n\n/**\n * Display the favorites-empty state.\n *\n * @return {void}\n */\nexport function showFavoritesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.FAVORITES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No favorites', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t added any templates to your favorites yet.',\n\t\t'formidable'\n\t);\n\n\t// Display the empty state\n\thideElements( [ pageTitle, emptyStateButton ] );\n\tshow( emptyState );\n}\n\n/**\n * Display the custom-empty state.\n *\n * @return {void}\n */\nexport function showCustomTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.CUSTOM );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'You currently have no templates.', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t created any form templates. Begin now to simplify your workflow and save time.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Create Template', 'formidable' );\n\n\t// Display the empty state\n\thide( pageTitle );\n\tshowElements( [ emptyState, emptyStateButton ] );\n}\n\n/**\n * Display the available-templates-empty state.\n *\n * @return {void}\n */\nexport function showAvailableTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.AVAILABLE_TEMPLATES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\tconst { extraTemplatesCount } = getState();\n\temptyStateTitle.textContent = __( 'No Templates Available', 'formidable' );\n\temptyStateText.textContent = sprintf(\n\t\t// translators: %s is the number of extra templates available\n\t\t__( 'Upgrade to PRO for %s+ options or explore Free Templates.', 'formidable' ),\n\t\textraTemplatesCount\n\t);\n\n\t// Display the empty state\n\thideElements( [ pageTitle, emptyStateButton ] );\n\tshow( emptyState );\n}\n","/**\n * External dependencies\n */\nimport { frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Display the \"Cancel\" button in the header.\n *\n * @return {void}\n */\nexport function showHeaderCancelButton() {\n\tconst { headerCancelButton } = getElements();\n\tnew frmAnimate( headerCancelButton ).fadeIn();\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { hideElements, show } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { MODAL_SIZES, PLANS, upgradeLink } from '../shared';\nimport { getModalWidget } from './';\n\n/**\n * Display the locked template modal.\n *\n * @param {HTMLElement} template The template element.\n * @return {void}\n */\nexport function showLockedTemplateModal( template ) {\n\tconst plan = template.dataset.requiredPlan;\n\n\tswitch ( plan ) {\n\t\tcase PLANS.BASIC:\n\t\tcase PLANS.PLUS:\n\t\tcase PLANS.BUSINESS:\n\t\tcase PLANS.ELITE:\n\t\t\tshowUpgradeModal( plan, template );\n\t\t\tbreak;\n\t\tcase PLANS.RENEW:\n\t\t\tshowRenewAccountModal();\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Base function to show a modal dialog with a customizable pre-open execution step.\n *\n * @param {Function} executePreOpen The function to be executed before opening the modal dialog.\n * @return {Function} A higher-order function that can be invoked to display the modal dialog.\n */\nconst showModal = executePreOpen => async ( ...params ) => {\n\tconst dialogWidget = getModalWidget();\n\tif ( ! dialogWidget ) {\n\t\treturn;\n\t}\n\n\tconst { modalItems } = getElements();\n\thideElements( modalItems );\n\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.GENERAL );\n\tawait executePreOpen?.( ...params );\n\tdialogWidget.dialog( 'open' );\n};\n\n// Mapping each plan to the subsequent plans it can upgrade to\nconst upgradablePlans = {\n\tbasic: [ 'basic', 'plus', 'business', 'elite' ],\n\tplus: [ 'plus', 'business', 'elite' ],\n\tbusiness: [ 'business', 'elite' ],\n\telite: [ 'elite' ]\n};\n\n/**\n * Display the modal dialog to prompt the user to upgrade their account.\n *\n * @param {string} plan Current plan name\n * @param {HTMLElement} template The template element\n * @return {void}\n */\nexport const showUpgradeModal = showModal( ( plan, template ) => {\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst { upgradeModal, upgradeModalTemplateNames, upgradeModalPlansIcons, upgradeModalLink } = getElements();\n\n\t// Update template names\n\tupgradeModalTemplateNames.forEach( element => element.textContent = templateName );\n\n\t// Update plan icons and their availability\n\tupgradeModalPlansIcons.forEach( icon => {\n\t\tconst planType = icon.dataset.plan;\n\t\tconst shouldDisplayCheck = upgradablePlans[ plan ].includes( planType );\n\n\t\t// Toggle icon class based on plan availability\n\t\ticon.classList.toggle( 'frm_green', shouldDisplayCheck );\n\n\t\t// Update SVG icon\n\t\tconst svg = icon.querySelector( 'svg > use' );\n\t\tsvg.setAttribute( 'xlink:href', shouldDisplayCheck ? '#frm_checkmark_icon' : '#frm_close_icon' );\n\t} );\n\n\t// Append template slug to the upgrade modal link URL\n\tconst templateSlug = template.dataset.slug ? `-${ template.dataset.slug }` : '';\n\tupgradeModalLink.href = upgradeLink + templateSlug;\n\n\tshow( upgradeModal );\n} );\n\n/**\n * Display the modal dialog to prompt the user to renew their account.\n *\n * @return {void}\n */\nexport const showRenewAccountModal = showModal( () => {\n\tconst { renewAccountModal } = getElements();\n\tshow( renewAccountModal );\n} );\n\n/**\n * Displays a modal dialog prompting the user to create a new template.\n *\n * @return {void}\n */\nexport const showCreateTemplateModal = showModal( () => {\n\tconst dialogWidget = getModalWidget();\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\n\tconst { createTemplateModal } = getElements();\n\tshow( createTemplateModal );\n} );\n","/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, VIEW_SLUGS, getState } from '../shared';\nimport { isFavoriteTemplate } from '../utils';\nimport { categorizedTemplates } from '../templates';\nimport { updatePageTitle, showFavoritesEmptyState, showCustomTemplatesEmptyState, showAvailableTemplatesEmptyState } from './';\n\n/**\n * Show templates based on selected category.\n *\n * @param {string} selectedCategory The selected category to display templates for.\n * @return {void}\n */\nexport function showSelectedCategory( selectedCategory ) {\n\tconst { bodyContentChildren, pageTitle, showCreateTemplateModalButton, templatesList, templateItems } = getElements();\n\n\tif ( SKELETON_VIEWS.ALL_ITEMS !== selectedCategory ) {\n\t\thideElements( bodyContentChildren );\n\t}\n\n\tupdatePageTitle();\n\thide( showCreateTemplateModalButton );\n\tshow( pageTitle );\n\n\tswitch ( selectedCategory ) {\n\t\tcase SKELETON_VIEWS.ALL_ITEMS:\n\t\t\tshowAllTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.AVAILABLE_TEMPLATES:\n\t\t\tshowAvailableTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.FAVORITES:\n\t\t\tshowFavoriteTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.CUSTOM:\n\t\t\tshowCustomTemplates();\n\t\t\tbreak;\n\t\tdefault:\n\t\t\thideElements( templateItems ); // Clear the view for new content\n\t\t\tshowElements( [ templatesList, ...categorizedTemplates[ selectedCategory ] ] );\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Shows all templates when 'All Templates' is the selected category.\n *\n * @return {void}\n */\nexport function showAllTemplates() {\n\tconst {\n\t\tbodyContentChildren,\n\t\tpageTitleDivider,\n\t\ttemplateItems,\n\t\ttwinFeaturedTemplateItems,\n\t\tcustomTemplatesSection,\n\t\temptyState,\n\t\tapplicationTemplates\n\t} = getElements();\n\n\tshowElements( [ ...bodyContentChildren, ...templateItems ] );\n\thideElements( [ pageTitleDivider, ...twinFeaturedTemplateItems, customTemplatesSection, emptyState, applicationTemplates ] );\n}\n\n/**\n * Shows favorite templates.\n *\n * @return {void}\n */\nexport function showFavoriteTemplates() {\n\tconst { favoritesCount } = getState();\n\n\tif ( 0 === favoritesCount.total ) {\n\t\tshowFavoritesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tbodyContent,\n\t\ttemplatesList,\n\t\ttemplateItems,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplatesList,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\t// Clear the view for new content\n\thideElements( templateItems );\n\n\tconst elementsToShow = [];\n\n\t// Get all favorite items from the DOM and add the elements to show\n\tconst favoriteItems = bodyContent.querySelectorAll( `.${ PREFIX }-favorite-item` );\n\telementsToShow.push( ...favoriteItems );\n\n\t// Add default favorites if available\n\tif ( favoritesCount.default > 0 ) {\n\t\telementsToShow.push( templatesList );\n\t}\n\n\t// Add custom favorites if available\n\tif ( favoritesCount.custom > 0 ) {\n\t\tconst nonFavCustomTemplates = Array.from( customTemplateItems ).filter(\n\t\t\ttemplate => ! isFavoriteTemplate( template )\n\t\t);\n\n\t\thideElements( nonFavCustomTemplates );\n\t\telementsToShow.push( customTemplatesSection );\n\t\telementsToShow.push( customTemplatesList );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t} else {\n\t\t\telementsToShow.push( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Show elements that were selected to be shown\n\tshowElements( elementsToShow );\n}\n\n/**\n * Shows custom templates.\n *\n * @return {void}\n */\nexport function showCustomTemplates() {\n\tconst { customCount } = getState();\n\n\tif ( 0 === customCount ) {\n\t\tshowCustomTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tshowCreateTemplateModalButton,\n\t\tpageTitleDivider,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesList,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\thide( customTemplatesTitle );\n\tshowElements( [ showCreateTemplateModalButton, pageTitleDivider, customTemplatesSection, customTemplatesList, ...customTemplateItems ] );\n}\n\n/**\n * Shows available templates.\n *\n * @return {void}\n */\nexport function showAvailableTemplates() {\n\tconst { availableTemplatesCount } = getState();\n\n\tif ( 0 === availableTemplatesCount ) {\n\t\tshowAvailableTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst { templatesList, templateItems, availableTemplateItems } = getElements();\n\n\thideElements( templateItems ); // Clear the view for new content\n\tshowElements( [ templatesList, ...availableTemplateItems ] );\n}\n\nexport default showSelectedCategory;\n","export * from './validation';\n","/**\n * External dependencies\n */\nimport { isHTMLElement } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS, FEATURED_TEMPLATES_KEYS } from '../shared';\n\n/**\n * Checks if the category is \"All Templates\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"All Templates\", otherwise false.\n */\nexport const isAllTemplatesCategory = category => SKELETON_VIEWS.ALL_ITEMS === category;\n\n/**\n * Checks if the category is \"Favorites\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Favorites\", otherwise false.\n */\nexport const isFavoritesCategory = category => VIEW_SLUGS.FAVORITES === category;\n\n/**\n * Checks if the category is \"Custom\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Custom\", otherwise false.\n */\nexport const isCustomCategory = category => VIEW_SLUGS.CUSTOM === category;\n\n/**\n * Checks if a template is a favorite.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is a favorite, otherwise false.\n */\nexport const isFavoriteTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-favorite-item` ) : false;\n\n/**\n * Checks if a template is custom.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is custom, otherwise false.\n */\nexport const isCustomTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-custom-item` ) : false;\n\n/**\n * Checks if a template is featured.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is featured, otherwise false.\n */\nexport const isFeaturedTemplate = template =>\n\tisHTMLElement( template ) ? FEATURED_TEMPLATES_KEYS.includes( Number( template.dataset.id ) ) : false;\n\n/**\n * Checks if a template is locked.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is locked, otherwise false.\n */\nexport const isLockedTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-locked-item` ) : false;\n","/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>} args Function arguments for cache\n * entry.\n * @property {*} val Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F} fn Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( process.env.NODE_ENV === 'test' ) {\n\t\t// Cache is not exposed in the public API, but used in tests to ensure\n\t\t// expected list progression\n\t\tmemoized.getCache = function() {\n\t\t\treturn [ head, tail, size ];\n\t\t};\n\t}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n","/* global window, exports, define */\n\n!function() {\n 'use strict'\n\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n }\n\n function sprintf(key) {\n // `arguments` is not an array, but should be fine for this call\n return sprintf_format(sprintf_parse(key), arguments)\n }\n\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []))\n }\n\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === 'string') {\n output += parse_tree[i]\n }\n else if (typeof parse_tree[i] === 'object') {\n ph = parse_tree[i] // convenience purposes only\n if (ph.keys) { // keyword argument\n arg = argv[cursor]\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == undefined) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n }\n arg = arg[ph.keys[k]]\n }\n }\n else if (ph.param_no) { // positional argument (explicit)\n arg = argv[ph.param_no]\n }\n else { // positional argument (implicit)\n arg = argv[cursor++]\n }\n\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg()\n }\n\n if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n }\n\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt]\n }\n\n var _fmt = fmt, match, parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0])\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n )\n }\n else {\n throw new SyntaxError('[sprintf] unexpected placeholder')\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return sprintf_cache[fmt] = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports['sprintf'] = sprintf\n exports['vsprintf'] = vsprintf\n }\n if (typeof window !== 'undefined') {\n window['sprintf'] = sprintf\n window['vsprintf'] = vsprintf\n\n if (typeof define === 'function' && define['amd']) {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n","import pluralForms from '@tannin/plural-forms';\n\n/**\n * Tannin constructor options.\n *\n * @typedef {Object} TanninOptions\n *\n * @property {string} [contextDelimiter] Joiner in string lookup with context.\n * @property {Function} [onMissingKey] Callback to invoke when key missing.\n */\n\n/**\n * Domain metadata.\n *\n * @typedef {Object} TanninDomainMetadata\n *\n * @property {string} [domain] Domain name.\n * @property {string} [lang] Language code.\n * @property {(string|Function)} [plural_forms] Plural forms expression or\n * function evaluator.\n */\n\n/**\n * Domain translation pair respectively representing the singular and plural\n * translation.\n *\n * @typedef {[string,string]} TanninTranslation\n */\n\n/**\n * Locale data domain. The key is used as reference for lookup, the value an\n * array of two string entries respectively representing the singular and plural\n * translation.\n *\n * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain\n */\n\n/**\n * Jed-formatted locale data.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData\n */\n\n/**\n * Default Tannin constructor options.\n *\n * @type {TanninOptions}\n */\nvar DEFAULT_OPTIONS = {\n\tcontextDelimiter: '\\u0004',\n\tonMissingKey: null,\n};\n\n/**\n * Given a specific locale data's config `plural_forms` value, returns the\n * expression.\n *\n * @example\n *\n * ```\n * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)'\n * ```\n *\n * @param {string} pf Locale data plural forms.\n *\n * @return {string} Plural forms expression.\n */\nfunction getPluralExpression( pf ) {\n\tvar parts, i, part;\n\n\tparts = pf.split( ';' );\n\n\tfor ( i = 0; i < parts.length; i++ ) {\n\t\tpart = parts[ i ].trim();\n\t\tif ( part.indexOf( 'plural=' ) === 0 ) {\n\t\t\treturn part.substr( 7 );\n\t\t}\n\t}\n}\n\n/**\n * Tannin constructor.\n *\n * @class\n *\n * @param {TanninLocaleData} data Jed-formatted locale data.\n * @param {TanninOptions} [options] Tannin options.\n */\nexport default function Tannin( data, options ) {\n\tvar key;\n\n\t/**\n\t * Jed-formatted locale data.\n\t *\n\t * @name Tannin#data\n\t * @type {TanninLocaleData}\n\t */\n\tthis.data = data;\n\n\t/**\n\t * Plural forms function cache, keyed by plural forms string.\n\t *\n\t * @name Tannin#pluralForms\n\t * @type {Object}\n\t */\n\tthis.pluralForms = {};\n\n\t/**\n\t * Effective options for instance, including defaults.\n\t *\n\t * @name Tannin#options\n\t * @type {TanninOptions}\n\t */\n\tthis.options = {};\n\n\tfor ( key in DEFAULT_OPTIONS ) {\n\t\tthis.options[ key ] = options !== undefined && key in options\n\t\t\t? options[ key ]\n\t\t\t: DEFAULT_OPTIONS[ key ];\n\t}\n}\n\n/**\n * Returns the plural form index for the given domain and value.\n *\n * @param {string} domain Domain on which to calculate plural form.\n * @param {number} n Value for which plural form is to be calculated.\n *\n * @return {number} Plural form index.\n */\nTannin.prototype.getPluralForm = function( domain, n ) {\n\tvar getPluralForm = this.pluralForms[ domain ],\n\t\tconfig, plural, pf;\n\n\tif ( ! getPluralForm ) {\n\t\tconfig = this.data[ domain ][ '' ];\n\n\t\tpf = (\n\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t// @ts-ignore\n\t\t\tconfig.plural_forms\n\t\t);\n\n\t\tif ( typeof pf !== 'function' ) {\n\t\t\tplural = getPluralExpression(\n\t\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t\t// @ts-ignore\n\t\t\t\tconfig.plural_forms\n\t\t\t);\n\n\t\t\tpf = pluralForms( plural );\n\t\t}\n\n\t\tgetPluralForm = this.pluralForms[ domain ] = pf;\n\t}\n\n\treturn getPluralForm( n );\n};\n\n/**\n * Translate a string.\n *\n * @param {string} domain Translation domain.\n * @param {string|void} context Context distinguishing terms of the same name.\n * @param {string} singular Primary key for translation lookup.\n * @param {string=} plural Fallback value used for non-zero plural\n * form index.\n * @param {number=} n Value to use in calculating plural form.\n *\n * @return {string} Translated string.\n */\nTannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) {\n\tvar index, key, entry;\n\n\tif ( n === undefined ) {\n\t\t// Default to singular.\n\t\tindex = 0;\n\t} else {\n\t\t// Find index by evaluating plural form for value.\n\t\tindex = this.getPluralForm( domain, n );\n\t}\n\n\tkey = singular;\n\n\t// If provided, context is prepended to key with delimiter.\n\tif ( context ) {\n\t\tkey = context + this.options.contextDelimiter + singular;\n\t}\n\n\tentry = this.data[ domain ][ key ];\n\n\t// Verify not only that entry exists, but that the intended index is within\n\t// range and non-empty.\n\tif ( entry && entry[ index ] ) {\n\t\treturn entry[ index ];\n\t}\n\n\tif ( this.options.onMissingKey ) {\n\t\tthis.options.onMissingKey( singular, domain );\n\t}\n\n\t// If entry not found, fall back to singular vs. plural with zero index\n\t// representing the singular value.\n\treturn index === 0 ? singular : plural;\n};\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * WordPress dependencies\n */\nimport domReady from '@wordpress/dom-ready';\n\n/**\n * Internal dependencies\n */\nimport { getState, setState } from './shared';\nimport initializeFormTemplates from './initializeFormTemplates';\n\ndomReady( () => {\n\t/**\n\t * Entry point for pre-initialization adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.beforeInitialize', {\n\t\tgetState,\n\t\tsetState\n\t} );\n\n\t// Initialize the form templates\n\tinitializeFormTemplates();\n\n\t/**\n\t * Entry point for post-initialization custom logic or adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.afterInitialize', {\n\t\tgetState,\n\t\tsetState\n\t} );\n\n\t/**\n\t * Trigger a specific action to interact with the hidden form '#frm-new-template',\n\t * which is used for creating or using a form template.\n\t *\n\t * @param {HTMLElement} $form The jQuery object containing the hidden form element.\n\t */\n\twp.hooks.doAction( 'frm_new_form_modal_form', jQuery( '#frm-new-template' ) );\n} );\n"],"names":["_window$frmGlobal","window","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","DISABLED_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","SINGLE_SETTINGS_CLASS","HOOKS","SHOW_FIELD_SETTINGS","createPageElements","initialElements","arguments","length","undefined","_typeof","Error","elements","getElements","addElements","newElements","_objectSpread","createPageState","initialState","state","getState","getSingleState","propertyName","value","Reflect","get","setState","newState","setSingleState","has","set","PREFIX","SEARCH_RESULT_ITEM","VIEWS","ALL_ITEMS","createEmptyStateElement","getEmptyStateElements","bodyContent","document","getElementById","sidebar","concat","emptyState","appendChild","emptyStateElements","_createPageElements","searchInput","querySelector","categoryItems","querySelectorAll","allItemsCategory","__","_window$frmDom","frmDom","tag","div","a","img","button","className","setAttribute","id","children","src","alt","emptyStateTitle","emptyStateText","emptyStateButton","onClickPreventDefault","frmAnimate","resetSearchInput","addCategoryEvents","_getElements","forEach","category","onCategoryClick","addEventListener","onCategoryKeydown","event","clickedCategory","currentTarget","newSelectedCategory","getAttribute","_getState","selectedCategory","selectedCategoryEl","notEmptySearchText","wp","hooks","applyFilters","classList","remove","add","doAction","_getElements2","fadeIn","key","preventDefault","dispatchEvent","Event","bubbles","_createPageState","type","_classCallCheck","prepareElements","_createClass","_this","applyStyleToElements","element","resetOpacity","once","cascadeFadeIn","_this2","delay","setTimeout","index","style","transitionDelay","_this3","opacity","callback","Element","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","console","warn","span","textContent","_window$frmDom$util","util","documentOn","URL","location","href","urlParams","searchParams","getQueryParam","paramName","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","includes","_defineProperty","history","hasQueryParam","isValidEmail","email","test","isHTMLElement","HTMLElement","isEmptyObject","obj","Object","keys","constructor","showElements","_Array$from","Array","from","hideElements","_Array$from2","isVisible","styles","getComputedStyle","getPropertyValue","SKELETON_PREFIX","applicationsUrl","applicationTemplates","thumbnailBaseURL","createApplicationTemplates","applications","templateItems","map","template","createTemplateItem","text","name","hasLiteThumbnail","isWebp","thumbnailURL","data","toLowerCase","child","addApplicationTemplatesElement","applicationTemplatesTitle","applicationTemplatesList","applicationTemplateItems","VIEW_SLUGS","templatesList","customTemplatesSection","favoritesCategory","FAVORITES","modal","headerCancelButton","_document$getElementB","createFormButton","pageTitle","pageTitleText","pageTitleDivider","upsellBanner","extraTemplateCountElements","availableTemplateItems","twinFeaturedTemplateItems","featuredTemplatesList","customTemplateItems","customTemplatesTitle","customTemplatesList","favoritesCategoryCountEl","availableTemplatesCategory","AVAILABLE_TEMPLATES","modalItems","showCreateTemplateModalButton","createTemplateModal","createTemplateFormsDropdown","createTemplateName","createTemplateDescription","createTemplateButton","renewAccountModal","upgradeModal","upgradeModalTemplateNames","upgradeModalPlansIcons","upgradeModalLink","newTemplateForm","newTemplateNameInput","newTemplateDescriptionInput","newTemplateLinkInput","newTemplateActionInput","bodyContentChildren","addApplicationTemplateEvents","onApplicationTemplateClick","target","closest","applicationTemplate","dataset","addCreateFormButtonEvents","onCreateFormButtonClick","installNewForm","frmAdminBuild","showCreateTemplateModal","isCustomCategory","addCreateTemplateEvents","onShowCreateTemplateModalButtonClick","onFormsSelectChange","onCreateTemplateButtonClick","formsSelect","formId","toggleDisableModalElements","selectedOption","options","selectedIndex","formDescription","description","trim","formName","templateString","endsWith","_getElements3","shouldDisable","_getElements4","disabled","toggle","actionName","_getElements5","showFavoritesEmptyState","isFavoriteTemplate","isCustomTemplate","isFeaturedTemplate","isFavoritesCategory","FAVORITE_BUTTON_CLASS","HEART_ICON_SELECTOR","FILLED_HEART_ICON","LINEAR_HEART_ICON","OPERATION","ADD","REMOVE","addFavoriteButtonEvents","favoriteButtons","favoriteButton","onFavoriteButtonClick","_twinFeaturedTemplate","templateId","isFavorited","isTemplateCustom","isTemplateFeatured","twinFeaturedTemplate","templateList","favoritesCount","currentOperation","heartIcon","twinTemplateHeartIcon","total","custom","default","updateFavoriteTemplate","operation","isCustom","formData","FormData","doJsonPost","ajax","append","addUseTemplateButtonEvents","addSearchEvents","showSelectedCategory","addEventListeners","addAction","showSearchState","displaySearchElements","initSearch","init","handleSearchResult","onEmptyStateButtonClick","_ref","foundSomething","_emptyState$dataset","SEARCH","view","focus","showLockedTemplateModal","isLockedTemplate","useTemplateButtons","useTemplateButton","onUseTemplateButtonClick","isLocked","templateName","templateDescription","setupInitialView","initializeModal","buildCategorizedTemplates","maybeAddApplicationTemplates","initializeFormTemplates","canAccessApplicationDashboard","_window$frmFormTempla","frmFormTemplatesVars","FEATURED_TEMPLATES_KEYS","upgradeLink","CUSTOM","PLANS","BASIC","PLUS","BUSINESS","ELITE","RENEW","FREE","MODAL_SIZES","GENERAL","CREATE_TEMPLATE","templatesCount","customCount","availableTemplatesCount","Number","extraTemplatesCount","selectedTemplate","doJsonFetch","setupApplicationTemplates","templates","categorizedTemplates","categories","split","push","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","apply","_next","_throw","modalWidget","_initializeModal","_callee","_window$frmAdminBuild","initModal","offsetModalY","_callee$","_context","confirmModal","$info","dialog","getModalWidget","updatePageTitle","title","newTitle","showSearchEmptyState","bodyContentAnimate","offsetHeight","showHeaderCancelButton","_getState2","sprintf","removeAttribute","showCustomTemplatesEmptyState","_getElements6","showAvailableTemplatesEmptyState","_getElements7","_getElements8","plan","requiredPlan","showUpgradeModal","showRenewAccountModal","showModal","executePreOpen","dialogWidget","_len","params","_key","_args","upgradablePlans","basic","plus","business","elite","icon","planType","shouldDisplayCheck","svg","templateSlug","slug","SKELETON_VIEWS","showAllTemplates","showAvailableTemplates","showFavoriteTemplates","showCustomTemplates","_toConsumableArray","elementsToShow","favoriteItems","nonFavCustomTemplates","filter","_getState3","isAllTemplatesCategory","contains","domReady","jQuery"],"sourceRoot":""} \ No newline at end of file +<<<<<<< HEAD +{"version":3,"file":"form-templates.js","mappings":";;;;;;;;;;;;;;;;AAAsC;AACE;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,aAAa,oBAAoB,MAAM;AACnD;AACe;AACf,aAAa,2DAAO;;AAEpB;AACA,SAAS,4DAAQ;AACjB;AACA;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB;AACA,YAAY,GAAG;AACf;AACe;AACf;AACA;;AAEA,cAAc,oBAAoB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AC7GsC;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf,gBAAgB,2DAAO;;AAEvB;AACA,sBAAsB,OAAO;AAC7B;AACA;;;;;;;;;;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;AC3HA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY;AACZ;AACe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;;;;;;;;;;;;;AC5CA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC;;AAEA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,SAAS,iEAAiB;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,QAAQ;;AAEzB;;AAEA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,kBAAkB;AAClB;;;AAGA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+DAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+DAAe,iBAAiB,EAAC;AACjC;;;;;;;;;;;;;ACpBA;AACA;AACA;AACqD;AACrD;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA;AACA;AACA;;AAEA,+DAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA,+DAAe,eAAe,EAAC;AAC/B;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA,+DAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;ACrCwE;;AAExE;AACA;AACA;AAC4C;AACM;AACN;AACA;AACQ;AACJ;AACJ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,EAAE,qFAAe;;AAEjB,aAAa,mBAAmB;AAChC;AACA;AACA,aAAa,mBAAmB;;AAEhC;AACA;AACA,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,sBAAsB,6DAAgB;AACtC,sBAAsB,6DAAgB;AACtC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,0BAA0B,6DAAgB;AAC1C,0BAA0B,6DAAgB;AAC1C,kBAAkB,0DAAa;AAC/B,sBAAsB,0DAAa;AACnC,uBAAuB,8DAAiB;AACxC,uBAAuB,8DAAiB;AACxC,qBAAqB,4DAAe;AACpC,qBAAqB,4DAAe;AACpC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC;AACA,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA,+DAAe,WAAW,EAAC;AAC3B;;;;;;;;;;;;;;AC5DA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA;AACA,YAAY,YAAY;AACxB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,uBAAuB,iEAAiB;AACxC;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+DAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;AC3F8E;;AAE9E;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA,YAAY,kDAAkD;AAC9D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;;AAElD,QAAQ,IAAqC;AAC7C;AACA;AACA,sCAAsC,wFAAkB;AACxD;AACA;;AAEA,2FAA2F,aAAa;AACxG;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+DAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvEA;AACA;AACA;AACwC;AACxC,cAAc,uBAAuB;;AAErC;AACA;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;;AAEA;AACA,aAAa,wBAAwB,uBAAuB;AAC5D;;AAEA;AACA,aAAa,uBAAuB;AACpC;;AAEA;AACA,aAAa,+BAA+B;AAC5C;;AAEO,mBAAmB,wDAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2P;AAC3P;;;;;;;;;;;;ACzDA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+DAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;AChCA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AA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AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,2BAA2B,eAAe;AAC1C,qBAAqB,iBAAiB;AACtC,cAAc,iBAAiB;AAC/B,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,KAA+B,GAAG,EAMtC;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACtKA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,IAA8B;AACtC,QAAQ,eAAkB;AAC1B,QAAQ,gBAAmB;AAC3B;AACA;AACA;AACA;;AAEA,YAAY,IAA6C;AACzD,YAAY,mCAAO;AACnB;AACA;AACA;AACA;AACA,aAAa;AAAA,kGAAC;AACd;AACA;AACA;AACA,CAAC,IAAI;;;;;;;;;;;;;;;;;ACtO0C;;AAE/C;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,gGAAgG;AAC9G;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,qCAAqC;AACnD;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA,qBAAqB;;AAErB,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,kBAAkB;AAC7B;AACe;AACf;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,gEAAW;AACnB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB;AACA,WAAW,aAAa;AACxB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpNA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;;ACJqD;AACrD;AACA,+BAA+B,gEAAgB;AAC/C;;;;;;;;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACFuD;AACJ;AACsB;AAClB;AACvD;AACA,SAAS,iEAAiB,OAAO,+DAAe,OAAO,0EAA0B,OAAO,iEAAiB;AACzG;;;;;;;;;;;;;;;;;ACNqD;AACrD;AACA;AACA,qCAAqC,gEAAgB;AACrD,cAAc;AACd,+LAA+L,gEAAgB;AAC/M;AACA;;;;;;;;;;;;;;;;;ACP+C;AAC/C;AACA,cAAc,6DAAa;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACRkC;AAClC;AACA,kBAAkB,sDAAO;AACzB;AACA;AACA;AACA,oBAAoB,sDAAO;AAC3B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVkC;AACS;AAC3C;AACA,UAAU,2DAAW;AACrB,qBAAqB,sDAAO;AAC5B;;;;;;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;;;;;;;UCRA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA,eAAe,4BAA4B;WAC3C,eAAe;WACf,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA,8CAA8C;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACNA;AACA;AACA;AAC4C;;AAE5C;AACA;AACA;AAC8C;AACkB;AAEhEof,gEAAQ,CAAE,YAAM;EACf;AACD;AACA;AACA;AACA;EACC5b,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,mCAAmC,EAAE;IACvDzE,QAAQ,EAARA,6CAAQ;IACRM,QAAQ,EAARA,6CAAQA;EACT,CAAC,CAAC;;EAEF;EACA+T,oEAAuB,CAAC,CAAC;;EAEzB;AACD;AACA;AACA;AACA;EACClQ,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,kCAAkC,EAAE;IACtDzE,QAAQ,EAARA,6CAAQ;IACRM,QAAQ,EAARA,6CAAQA;EACT,CAAC,CAAC;;EAEF;AACD;AACA;AACA;AACA;AACA;EACC6D,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,yBAAyB,EAAEub,MAAM,CAAE,mBAAoB,CAAE,CAAC;AAC9E,CAAC,CAAC,C","sources":["webpack://formidable/./node_modules/@tannin/compile/index.js","webpack://formidable/./node_modules/@tannin/evaluate/index.js","webpack://formidable/./node_modules/@tannin/plural-forms/index.js","webpack://formidable/./node_modules/@tannin/postfix/index.js","webpack://formidable/./node_modules/@wordpress/dom-ready/build-module/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createAddHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createCurrentHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDidHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDoingHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHasHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHooks.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRemoveHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRunHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateHookName.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateNamespace.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/create-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/default-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/index.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/sprintf.js","webpack://formidable/./js/src/core/constants.js","webpack://formidable/./js/src/core/factory/createPageElements.js","webpack://formidable/./js/src/core/factory/createPageState.js","webpack://formidable/./js/src/core/factory/index.js","webpack://formidable/./js/src/core/page-skeleton/constants.js","webpack://formidable/./js/src/core/page-skeleton/elements/elements.js","webpack://formidable/./js/src/core/page-skeleton/elements/emptyStateElement.js","webpack://formidable/./js/src/core/page-skeleton/elements/index.js","webpack://formidable/./js/src/core/page-skeleton/events/categoryListener.js","webpack://formidable/./js/src/core/page-skeleton/events/index.js","webpack://formidable/./js/src/core/page-skeleton/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/pageState.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.js","webpack://formidable/./js/src/form-templates/elements/applicationTemplatesElement.js","webpack://formidable/./js/src/form-templates/elements/elements.js","webpack://formidable/./js/src/form-templates/elements/index.js","webpack://formidable/./js/src/form-templates/events/applicationTemplateListener.js","webpack://formidable/./js/src/form-templates/events/createFormButtonListener.js","webpack://formidable/./js/src/form-templates/events/createTemplateListeners.js","webpack://formidable/./js/src/form-templates/events/favoriteButtonListener.js","webpack://formidable/./js/src/form-templates/events/index.js","webpack://formidable/./js/src/form-templates/events/searchListener.js","webpack://formidable/./js/src/form-templates/events/useTemplateButtonListener.js","webpack://formidable/./js/src/form-templates/initializeFormTemplates.js","webpack://formidable/./js/src/form-templates/shared/constants.js","webpack://formidable/./js/src/form-templates/shared/index.js","webpack://formidable/./js/src/form-templates/shared/pageState.js","webpack://formidable/./js/src/form-templates/templates/applicationTemplates.js","webpack://formidable/./js/src/form-templates/templates/categorizeTemplates.js","webpack://formidable/./js/src/form-templates/templates/index.js","webpack://formidable/./js/src/form-templates/ui/index.js","webpack://formidable/./js/src/form-templates/ui/initializeModal.js","webpack://formidable/./js/src/form-templates/ui/pageTitle.js","webpack://formidable/./js/src/form-templates/ui/searchState.js","webpack://formidable/./js/src/form-templates/ui/setupInitialView.js","webpack://formidable/./js/src/form-templates/ui/showEmptyState.js","webpack://formidable/./js/src/form-templates/ui/showHeaderCancelButton.js","webpack://formidable/./js/src/form-templates/ui/showModal.js","webpack://formidable/./js/src/form-templates/ui/showSelectedCategory.js","webpack://formidable/./js/src/form-templates/utils/index.js","webpack://formidable/./js/src/form-templates/utils/validation.js","webpack://formidable/./node_modules/memize/index.js","webpack://formidable/./node_modules/sprintf-js/src/sprintf.js","webpack://formidable/./node_modules/tannin/index.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://formidable/webpack/bootstrap","webpack://formidable/webpack/runtime/compat get default export","webpack://formidable/webpack/runtime/define property getters","webpack://formidable/webpack/runtime/hasOwnProperty shorthand","webpack://formidable/webpack/runtime/make namespace object","webpack://formidable/./js/src/form-templates/index.js"],"sourcesContent":["import postfix from '@tannin/postfix';\nimport evaluate from '@tannin/evaluate';\n\n/**\n * Given a C expression, returns a function which can be called to evaluate its\n * result.\n *\n * @example\n *\n * ```js\n * import compile from '@tannin/compile';\n *\n * const evaluate = compile( 'n > 1' );\n *\n * evaluate( { n: 2 } );\n * // ⇒ true\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator.\n */\nexport default function compile( expression ) {\n\tvar terms = postfix( expression );\n\n\treturn function( variables ) {\n\t\treturn evaluate( terms, variables );\n\t};\n}\n","/**\n * Operator callback functions.\n *\n * @type {Object}\n */\nvar OPERATORS = {\n\t'!': function( a ) {\n\t\treturn ! a;\n\t},\n\t'*': function( a, b ) {\n\t\treturn a * b;\n\t},\n\t'/': function( a, b ) {\n\t\treturn a / b;\n\t},\n\t'%': function( a, b ) {\n\t\treturn a % b;\n\t},\n\t'+': function( a, b ) {\n\t\treturn a + b;\n\t},\n\t'-': function( a, b ) {\n\t\treturn a - b;\n\t},\n\t'<': function( a, b ) {\n\t\treturn a < b;\n\t},\n\t'<=': function( a, b ) {\n\t\treturn a <= b;\n\t},\n\t'>': function( a, b ) {\n\t\treturn a > b;\n\t},\n\t'>=': function( a, b ) {\n\t\treturn a >= b;\n\t},\n\t'==': function( a, b ) {\n\t\treturn a === b;\n\t},\n\t'!=': function( a, b ) {\n\t\treturn a !== b;\n\t},\n\t'&&': function( a, b ) {\n\t\treturn a && b;\n\t},\n\t'||': function( a, b ) {\n\t\treturn a || b;\n\t},\n\t'?:': function( a, b, c ) {\n\t\tif ( a ) {\n\t\t\tthrow b;\n\t\t}\n\n\t\treturn c;\n\t},\n};\n\n/**\n * Given an array of postfix terms and operand variables, returns the result of\n * the postfix evaluation.\n *\n * @example\n *\n * ```js\n * import evaluate from '@tannin/evaluate';\n *\n * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +'\n * const terms = [ '3', '4', '5', '*', '6', '/', '+' ];\n *\n * evaluate( terms, {} );\n * // ⇒ 6.333333333333334\n * ```\n *\n * @param {string[]} postfix Postfix terms.\n * @param {Object} variables Operand variables.\n *\n * @return {*} Result of evaluation.\n */\nexport default function evaluate( postfix, variables ) {\n\tvar stack = [],\n\t\ti, j, args, getOperatorResult, term, value;\n\n\tfor ( i = 0; i < postfix.length; i++ ) {\n\t\tterm = postfix[ i ];\n\n\t\tgetOperatorResult = OPERATORS[ term ];\n\t\tif ( getOperatorResult ) {\n\t\t\t// Pop from stack by number of function arguments.\n\t\t\tj = getOperatorResult.length;\n\t\t\targs = Array( j );\n\t\t\twhile ( j-- ) {\n\t\t\t\targs[ j ] = stack.pop();\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tvalue = getOperatorResult.apply( null, args );\n\t\t\t} catch ( earlyReturn ) {\n\t\t\t\treturn earlyReturn;\n\t\t\t}\n\t\t} else if ( variables.hasOwnProperty( term ) ) {\n\t\t\tvalue = variables[ term ];\n\t\t} else {\n\t\t\tvalue = +term;\n\t\t}\n\n\t\tstack.push( value );\n\t}\n\n\treturn stack[ 0 ];\n}\n","import compile from '@tannin/compile';\n\n/**\n * Given a C expression, returns a function which, when called with a value,\n * evaluates the result with the value assumed to be the \"n\" variable of the\n * expression. The result will be coerced to its numeric equivalent.\n *\n * @param {string} expression C expression.\n *\n * @return {Function} Evaluator function.\n */\nexport default function pluralForms( expression ) {\n\tvar evaluate = compile( expression );\n\n\treturn function( n ) {\n\t\treturn +evaluate( { n: n } );\n\t};\n}\n","var PRECEDENCE, OPENERS, TERMINATORS, PATTERN;\n\n/**\n * Operator precedence mapping.\n *\n * @type {Object}\n */\nPRECEDENCE = {\n\t'(': 9,\n\t'!': 8,\n\t'*': 7,\n\t'/': 7,\n\t'%': 7,\n\t'+': 6,\n\t'-': 6,\n\t'<': 5,\n\t'<=': 5,\n\t'>': 5,\n\t'>=': 5,\n\t'==': 4,\n\t'!=': 4,\n\t'&&': 3,\n\t'||': 2,\n\t'?': 1,\n\t'?:': 1,\n};\n\n/**\n * Characters which signal pair opening, to be terminated by terminators.\n *\n * @type {string[]}\n */\nOPENERS = [ '(', '?' ];\n\n/**\n * Characters which signal pair termination, the value an array with the\n * opener as its first member. The second member is an optional operator\n * replacement to push to the stack.\n *\n * @type {string[]}\n */\nTERMINATORS = {\n\t')': [ '(' ],\n\t':': [ '?', '?:' ],\n};\n\n/**\n * Pattern matching operators and openers.\n *\n * @type {RegExp}\n */\nPATTERN = /<=|>=|==|!=|&&|\\|\\||\\?:|\\(|!|\\*|\\/|%|\\+|-|<|>|\\?|\\)|:/;\n\n/**\n * Given a C expression, returns the equivalent postfix (Reverse Polish)\n * notation terms as an array.\n *\n * If a postfix string is desired, simply `.join( ' ' )` the result.\n *\n * @example\n *\n * ```js\n * import postfix from '@tannin/postfix';\n *\n * postfix( 'n > 1' );\n * // ⇒ [ 'n', '1', '>' ]\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {string[]} Postfix terms.\n */\nexport default function postfix( expression ) {\n\tvar terms = [],\n\t\tstack = [],\n\t\tmatch, operator, term, element;\n\n\twhile ( ( match = expression.match( PATTERN ) ) ) {\n\t\toperator = match[ 0 ];\n\n\t\t// Term is the string preceding the operator match. It may contain\n\t\t// whitespace, and may be empty (if operator is at beginning).\n\t\tterm = expression.substr( 0, match.index ).trim();\n\t\tif ( term ) {\n\t\t\tterms.push( term );\n\t\t}\n\n\t\twhile ( ( element = stack.pop() ) ) {\n\t\t\tif ( TERMINATORS[ operator ] ) {\n\t\t\t\tif ( TERMINATORS[ operator ][ 0 ] === element ) {\n\t\t\t\t\t// Substitution works here under assumption that because\n\t\t\t\t\t// the assigned operator will no longer be a terminator, it\n\t\t\t\t\t// will be pushed to the stack during the condition below.\n\t\t\t\t\toperator = TERMINATORS[ operator ][ 1 ] || operator;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) {\n\t\t\t\t// Push to stack if either an opener or when pop reveals an\n\t\t\t\t// element of lower precedence.\n\t\t\t\tstack.push( element );\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// For each popped from stack, push to terms.\n\t\t\tterms.push( element );\n\t\t}\n\n\t\tif ( ! TERMINATORS[ operator ] ) {\n\t\t\tstack.push( operator );\n\t\t}\n\n\t\t// Slice matched fragment from expression to continue match.\n\t\texpression = expression.substr( match.index + operator.length );\n\t}\n\n\t// Push remainder of operand, if exists, to terms.\n\texpression = expression.trim();\n\tif ( expression ) {\n\t\tterms.push( expression );\n\t}\n\n\t// Pop remaining items from stack into terms.\n\treturn terms.concat( stack.reverse() );\n}\n","/**\n * @typedef {() => void} Callback\n *\n * TODO: Remove this typedef and inline `() => void` type.\n *\n * This typedef is used so that a descriptive type is provided in our\n * automatically generated documentation.\n *\n * An in-line type `() => void` would be preferable, but the generated\n * documentation is `null` in that case.\n *\n * @see https://github.com/WordPress/gutenberg/issues/18045\n */\n\n/**\n * Specify a function to execute when the DOM is fully loaded.\n *\n * @param {Callback} callback A function to execute after the DOM is ready.\n *\n * @example\n * ```js\n * import domReady from '@wordpress/dom-ready';\n *\n * domReady( function() {\n * \t//do something after DOM loads.\n * } );\n * ```\n *\n * @return {void}\n */\nexport default function domReady(callback) {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly.\n document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly.\n ) {\n return void callback();\n } // DOMContentLoaded has not fired yet, delay callback until then.\n\n\n document.addEventListener('DOMContentLoaded', callback);\n}\n//# sourceMappingURL=index.js.map","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback AddHook\n *\n * Adds the hook to the appropriate hooks container.\n *\n * @param {string} hookName Name of hook to add\n * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.\n * @param {import('.').Callback} callback Function to call when the hook is run\n * @param {number} [priority=10] Priority of this hook\n */\n\n/**\n * Returns a function which, when invoked, will add a hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {AddHook} Function that adds a new hook.\n */\n\nfunction createAddHook(hooks, storeKey) {\n return function addHook(hookName, namespace, callback) {\n var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!validateNamespace(namespace)) {\n return;\n }\n\n if ('function' !== typeof callback) {\n // eslint-disable-next-line no-console\n console.error('The hook callback must be a function.');\n return;\n } // Validate numeric priority\n\n\n if ('number' !== typeof priority) {\n // eslint-disable-next-line no-console\n console.error('If specified, the hook priority must be a number.');\n return;\n }\n\n var handler = {\n callback: callback,\n priority: priority,\n namespace: namespace\n };\n\n if (hooksStore[hookName]) {\n // Find the correct insert index of the new hook.\n var handlers = hooksStore[hookName].handlers;\n /** @type {number} */\n\n var i;\n\n for (i = handlers.length; i > 0; i--) {\n if (priority >= handlers[i - 1].priority) {\n break;\n }\n }\n\n if (i === handlers.length) {\n // If append, operate via direct assignment.\n handlers[i] = handler;\n } else {\n // Otherwise, insert before index via splice.\n handlers.splice(i, 0, handler);\n } // We may also be currently executing this hook. If the callback\n // we're adding would come after the current callback, there's no\n // problem; otherwise we need to increase the execution index of\n // any other runs by 1 to account for the added element.\n\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex++;\n }\n });\n } else {\n // This is the first hook of its type.\n hooksStore[hookName] = {\n handlers: [handler],\n runs: 0\n };\n }\n\n if (hookName !== 'hookAdded') {\n hooks.doAction('hookAdded', hookName, namespace, callback, priority);\n }\n };\n}\n\nexport default createAddHook;\n//# sourceMappingURL=createAddHook.js.map","/**\n * Returns a function which, when invoked, will return the name of the\n * currently running hook, or `null` if no hook of the given type is currently\n * running.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {() => string | null} Function that returns the current hook name or null.\n */\nfunction createCurrentHook(hooks, storeKey) {\n return function currentHook() {\n var _hooksStore$__current, _hooksStore$__current2;\n\n var hooksStore = hooks[storeKey];\n return (_hooksStore$__current = (_hooksStore$__current2 = hooksStore.__current[hooksStore.__current.length - 1]) === null || _hooksStore$__current2 === void 0 ? void 0 : _hooksStore$__current2.name) !== null && _hooksStore$__current !== void 0 ? _hooksStore$__current : null;\n };\n}\n\nexport default createCurrentHook;\n//# sourceMappingURL=createCurrentHook.js.map","/**\n * Internal dependencies\n */\nimport validateHookName from './validateHookName.js';\n/**\n * @callback DidHook\n *\n * Returns the number of times an action has been fired.\n *\n * @param {string} hookName The hook name to check.\n *\n * @return {number | undefined} The number of times the hook has run.\n */\n\n/**\n * Returns a function which, when invoked, will return the number of times a\n * hook has been called.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DidHook} Function that returns a hook's call count.\n */\n\nfunction createDidHook(hooks, storeKey) {\n return function didHook(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0;\n };\n}\n\nexport default createDidHook;\n//# sourceMappingURL=createDidHook.js.map","/**\n * @callback DoingHook\n * Returns whether a hook is currently being executed.\n *\n * @param {string} [hookName] The name of the hook to check for. If\n * omitted, will check for any hook being executed.\n *\n * @return {boolean} Whether the hook is being executed.\n */\n\n/**\n * Returns a function which, when invoked, will return whether a hook is\n * currently being executed.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DoingHook} Function that returns whether a hook is currently\n * being executed.\n */\nfunction createDoingHook(hooks, storeKey) {\n return function doingHook(hookName) {\n var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook.\n\n if ('undefined' === typeof hookName) {\n return 'undefined' !== typeof hooksStore.__current[0];\n } // Return the __current hook.\n\n\n return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false;\n };\n}\n\nexport default createDoingHook;\n//# sourceMappingURL=createDoingHook.js.map","/**\n * @callback HasHook\n *\n * Returns whether any handlers are attached for the given hookName and optional namespace.\n *\n * @param {string} hookName The name of the hook to check for.\n * @param {string} [namespace] Optional. The unique namespace identifying the callback\n * in the form `vendor/plugin/function`.\n *\n * @return {boolean} Whether there are handlers that are attached to the given hook.\n */\n\n/**\n * Returns a function which, when invoked, will return whether any handlers are\n * attached to a particular hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {HasHook} Function that returns whether any handlers are\n * attached to a particular hook and optional namespace.\n */\nfunction createHasHook(hooks, storeKey) {\n return function hasHook(hookName, namespace) {\n var hooksStore = hooks[storeKey]; // Use the namespace if provided.\n\n if ('undefined' !== typeof namespace) {\n return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) {\n return hook.namespace === namespace;\n });\n }\n\n return hookName in hooksStore;\n };\n}\n\nexport default createHasHook;\n//# sourceMappingURL=createHasHook.js.map","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\n\n/**\n * Internal dependencies\n */\nimport createAddHook from './createAddHook';\nimport createRemoveHook from './createRemoveHook';\nimport createHasHook from './createHasHook';\nimport createRunHook from './createRunHook';\nimport createCurrentHook from './createCurrentHook';\nimport createDoingHook from './createDoingHook';\nimport createDidHook from './createDidHook';\n/**\n * Internal class for constructing hooks. Use `createHooks()` function\n *\n * Note, it is necessary to expose this class to make its type public.\n *\n * @private\n */\n\nexport var _Hooks = function _Hooks() {\n _classCallCheck(this, _Hooks);\n\n /** @type {import('.').Store} actions */\n this.actions = Object.create(null);\n this.actions.__current = [];\n /** @type {import('.').Store} filters */\n\n this.filters = Object.create(null);\n this.filters.__current = [];\n this.addAction = createAddHook(this, 'actions');\n this.addFilter = createAddHook(this, 'filters');\n this.removeAction = createRemoveHook(this, 'actions');\n this.removeFilter = createRemoveHook(this, 'filters');\n this.hasAction = createHasHook(this, 'actions');\n this.hasFilter = createHasHook(this, 'filters');\n this.removeAllActions = createRemoveHook(this, 'actions', true);\n this.removeAllFilters = createRemoveHook(this, 'filters', true);\n this.doAction = createRunHook(this, 'actions');\n this.applyFilters = createRunHook(this, 'filters', true);\n this.currentAction = createCurrentHook(this, 'actions');\n this.currentFilter = createCurrentHook(this, 'filters');\n this.doingAction = createDoingHook(this, 'actions');\n this.doingFilter = createDoingHook(this, 'filters');\n this.didAction = createDidHook(this, 'actions');\n this.didFilter = createDidHook(this, 'filters');\n};\n/** @typedef {_Hooks} Hooks */\n\n/**\n * Returns an instance of the hooks object.\n *\n * @return {Hooks} A Hooks instance.\n */\n\nfunction createHooks() {\n return new _Hooks();\n}\n\nexport default createHooks;\n//# sourceMappingURL=createHooks.js.map","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback RemoveHook\n * Removes the specified callback (or all callbacks) from the hook with a given hookName\n * and namespace.\n *\n * @param {string} hookName The name of the hook to modify.\n * @param {string} namespace The unique namespace identifying the callback in the\n * form `vendor/plugin/function`.\n *\n * @return {number | undefined} The number of callbacks removed.\n */\n\n/**\n * Returns a function which, when invoked, will remove a specified hook or all\n * hooks by the given name.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName,\n * without regard to namespace. Used to create\n * `removeAll*` functions.\n *\n * @return {RemoveHook} Function that removes hooks.\n */\n\nfunction createRemoveHook(hooks, storeKey) {\n var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function removeHook(hookName, namespace) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!removeAll && !validateNamespace(namespace)) {\n return;\n } // Bail if no hooks exist by this name\n\n\n if (!hooksStore[hookName]) {\n return 0;\n }\n\n var handlersRemoved = 0;\n\n if (removeAll) {\n handlersRemoved = hooksStore[hookName].handlers.length;\n hooksStore[hookName] = {\n runs: hooksStore[hookName].runs,\n handlers: []\n };\n } else {\n // Try to find the specified callback to remove.\n var handlers = hooksStore[hookName].handlers;\n\n var _loop = function _loop(i) {\n if (handlers[i].namespace === namespace) {\n handlers.splice(i, 1);\n handlersRemoved++; // This callback may also be part of a hook that is\n // currently executing. If the callback we're removing\n // comes after the current callback, there's no problem;\n // otherwise we need to decrease the execution index of any\n // other runs by 1 to account for the removed element.\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex--;\n }\n });\n }\n };\n\n for (var i = handlers.length - 1; i >= 0; i--) {\n _loop(i);\n }\n }\n\n if (hookName !== 'hookRemoved') {\n hooks.doAction('hookRemoved', hookName, namespace);\n }\n\n return handlersRemoved;\n };\n}\n\nexport default createRemoveHook;\n//# sourceMappingURL=createRemoveHook.js.map","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\n\n/**\n * Returns a function which, when invoked, will execute all callbacks\n * registered to a hook of the specified type, optionally returning the final\n * value of the call chain.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to\n * return its first argument.\n *\n * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks.\n */\nfunction createRunHook(hooks, storeKey) {\n var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function runHooks(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!hooksStore[hookName]) {\n hooksStore[hookName] = {\n handlers: [],\n runs: 0\n };\n }\n\n hooksStore[hookName].runs++;\n var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds.\n\n if ('production' !== process.env.NODE_ENV) {\n // Handle any 'all' hooks registered.\n if ('hookAdded' !== hookName && hooksStore.all) {\n handlers.push.apply(handlers, _toConsumableArray(hooksStore.all.handlers));\n }\n }\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!handlers || !handlers.length) {\n return returnFirstArg ? args[0] : undefined;\n }\n\n var hookInfo = {\n name: hookName,\n currentIndex: 0\n };\n\n hooksStore.__current.push(hookInfo);\n\n while (hookInfo.currentIndex < handlers.length) {\n var handler = handlers[hookInfo.currentIndex];\n var result = handler.callback.apply(null, args);\n\n if (returnFirstArg) {\n args[0] = result;\n }\n\n hookInfo.currentIndex++;\n }\n\n hooksStore.__current.pop();\n\n if (returnFirstArg) {\n return args[0];\n }\n };\n}\n\nexport default createRunHook;\n//# sourceMappingURL=createRunHook.js.map","/**\n * Internal dependencies\n */\nimport createHooks from './createHooks';\n/** @typedef {(...args: any[])=>any} Callback */\n\n/**\n * @typedef Handler\n * @property {Callback} callback The callback\n * @property {string} namespace The namespace\n * @property {number} priority The namespace\n */\n\n/**\n * @typedef Hook\n * @property {Handler[]} handlers Array of handlers\n * @property {number} runs Run counter\n */\n\n/**\n * @typedef Current\n * @property {string} name Hook name\n * @property {number} currentIndex The index\n */\n\n/**\n * @typedef {Record & {__current: Current[]}} Store\n */\n\n/**\n * @typedef {'actions' | 'filters'} StoreKey\n */\n\n/**\n * @typedef {import('./createHooks').Hooks} Hooks\n */\n\nexport var defaultHooks = createHooks();\nvar addAction = defaultHooks.addAction,\n addFilter = defaultHooks.addFilter,\n removeAction = defaultHooks.removeAction,\n removeFilter = defaultHooks.removeFilter,\n hasAction = defaultHooks.hasAction,\n hasFilter = defaultHooks.hasFilter,\n removeAllActions = defaultHooks.removeAllActions,\n removeAllFilters = defaultHooks.removeAllFilters,\n doAction = defaultHooks.doAction,\n applyFilters = defaultHooks.applyFilters,\n currentAction = defaultHooks.currentAction,\n currentFilter = defaultHooks.currentFilter,\n doingAction = defaultHooks.doingAction,\n doingFilter = defaultHooks.doingFilter,\n didAction = defaultHooks.didAction,\n didFilter = defaultHooks.didFilter,\n actions = defaultHooks.actions,\n filters = defaultHooks.filters;\nexport { createHooks, addAction, addFilter, removeAction, removeFilter, hasAction, hasFilter, removeAllActions, removeAllFilters, doAction, applyFilters, currentAction, currentFilter, doingAction, doingFilter, didAction, didFilter, actions, filters };\n//# sourceMappingURL=index.js.map","/**\n * Validate a hookName string.\n *\n * @param {string} hookName The hook name to validate. Should be a non empty string containing\n * only numbers, letters, dashes, periods and underscores. Also,\n * the hook name cannot begin with `__`.\n *\n * @return {boolean} Whether the hook name is valid.\n */\nfunction validateHookName(hookName) {\n if ('string' !== typeof hookName || '' === hookName) {\n // eslint-disable-next-line no-console\n console.error('The hook name must be a non-empty string.');\n return false;\n }\n\n if (/^__/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name cannot begin with `__`.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.');\n return false;\n }\n\n return true;\n}\n\nexport default validateHookName;\n//# sourceMappingURL=validateHookName.js.map","/**\n * Validate a namespace string.\n *\n * @param {string} namespace The namespace to validate - should take the form\n * `vendor/plugin/function`.\n *\n * @return {boolean} Whether the namespace is valid.\n */\nfunction validateNamespace(namespace) {\n if ('string' !== typeof namespace || '' === namespace) {\n // eslint-disable-next-line no-console\n console.error('The namespace must be a non-empty string.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.\\-\\/]*$/.test(namespace)) {\n // eslint-disable-next-line no-console\n console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.');\n return false;\n }\n\n return true;\n}\n\nexport default validateNamespace;\n//# sourceMappingURL=validateNamespace.js.map","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\nimport Tannin from 'tannin';\n/**\n * @typedef {Record} LocaleData\n */\n\n/**\n * Default locale data to use for Tannin domain when not otherwise provided.\n * Assumes an English plural forms expression.\n *\n * @type {LocaleData}\n */\n\nvar DEFAULT_LOCALE_DATA = {\n '': {\n /** @param {number} n */\n plural_forms: function plural_forms(n) {\n return n === 1 ? 0 : 1;\n }\n }\n};\n/*\n * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`,\n * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`.\n */\n\nvar I18N_HOOK_REGEXP = /^i18n\\.(n?gettext|has_translation)(_|$)/;\n/**\n * @typedef {(domain?: string) => LocaleData} GetLocaleData\n *\n * Returns locale data by domain in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData\n *\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData\n *\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/** @typedef {() => void} SubscribeCallback */\n\n/** @typedef {() => void} UnsubscribeCallback */\n\n/**\n * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe\n *\n * Subscribes to changes of locale data\n */\n\n/**\n * @typedef {(domain?: string) => string} GetFilterDomain\n * Retrieve the domain to use when calling domain-specific filters.\n */\n\n/**\n * @typedef {(text: string, domain?: string) => string} __\n *\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n */\n\n/**\n * @typedef {(text: string, context: string, domain?: string) => string} _x\n *\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n */\n\n/**\n * @typedef {() => boolean} IsRtl\n *\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n */\n\n/**\n * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation\n *\n * Check if there is a translation for a given string in singular form.\n */\n\n/** @typedef {import('@wordpress/hooks').Hooks} Hooks */\n\n/**\n * An i18n instance\n *\n * @typedef I18n\n * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape.\n * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data.\n * @property {__} __ Retrieve the translation of text.\n * @property {_x} _x Retrieve translated string with gettext context.\n * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied\n * number.\n * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n * @property {IsRtl} isRTL Check if current locale is RTL.\n * @property {HasTranslation} hasTranslation Check if there is a translation for a given string.\n */\n\n/**\n * Create an i18n instance\n *\n * @param {LocaleData} [initialData] Locale data configuration.\n * @param {string} [initialDomain] Domain for which configuration applies.\n * @param {Hooks} [hooks] Hooks implementation.\n * @return {I18n} I18n instance\n */\n\nexport var createI18n = function createI18n(initialData, initialDomain, hooks) {\n /**\n * The underlying instance of Tannin to which exported functions interface.\n *\n * @type {Tannin}\n */\n var tannin = new Tannin({});\n var listeners = new Set();\n\n var notifyListeners = function notifyListeners() {\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n /**\n * Subscribe to changes of locale data.\n *\n * @param {SubscribeCallback} callback Subscription callback.\n * @return {UnsubscribeCallback} Unsubscribe callback.\n */\n\n\n var subscribe = function subscribe(callback) {\n listeners.add(callback);\n return function () {\n return listeners.delete(callback);\n };\n };\n /** @type {GetLocaleData} */\n\n\n var getLocaleData = function getLocaleData() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return tannin.data[domain];\n };\n /**\n * @param {LocaleData} [data]\n * @param {string} [domain]\n */\n\n\n var doSetLocaleData = function doSetLocaleData(data) {\n var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits\n // a plural forms expression).\n\n tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']);\n };\n /** @type {SetLocaleData} */\n\n\n var setLocaleData = function setLocaleData(data, domain) {\n doSetLocaleData(data, domain);\n notifyListeners();\n };\n /** @type {ResetLocaleData} */\n\n\n var resetLocaleData = function resetLocaleData(data, domain) {\n // Reset all current Tannin locale data.\n tannin.data = {}; // Reset cached plural forms functions cache.\n\n tannin.pluralForms = {};\n setLocaleData(data, domain);\n };\n /**\n * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not\n * otherwise previously assigned.\n *\n * @param {string|undefined} domain Domain to retrieve the translated text.\n * @param {string|undefined} context Context information for the translators.\n * @param {string} single Text to translate if non-plural. Used as\n * fallback return value on a caught error.\n * @param {string} [plural] The text to be used if the number is\n * plural.\n * @param {number} [number] The number to compare against to use\n * either the singular or plural form.\n *\n * @return {string} The translated string.\n */\n\n\n var dcnpgettext = function dcnpgettext() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n var context = arguments.length > 1 ? arguments[1] : undefined;\n var single = arguments.length > 2 ? arguments[2] : undefined;\n var plural = arguments.length > 3 ? arguments[3] : undefined;\n var number = arguments.length > 4 ? arguments[4] : undefined;\n\n if (!tannin.data[domain]) {\n // use `doSetLocaleData` to set silently, without notifying listeners\n doSetLocaleData(undefined, domain);\n }\n\n return tannin.dcnpgettext(domain, context, single, plural, number);\n };\n /** @type {GetFilterDomain} */\n\n\n var getFilterDomain = function getFilterDomain() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return domain;\n };\n /** @type {__} */\n\n\n var __ = function __(text, domain) {\n var translation = dcnpgettext(domain, undefined, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext', translation, text, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain)\n );\n };\n /** @type {_x} */\n\n\n var _x = function _x(text, context, domain) {\n var translation = dcnpgettext(domain, context, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation based on context information.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain)\n );\n };\n /** @type {_n} */\n\n\n var _n = function _n(single, plural, number, domain) {\n var translation = dcnpgettext(domain, undefined, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain)\n );\n };\n /** @type {_nx} */\n\n\n var _nx = function _nx(single, plural, number, context, domain) {\n var translation = dcnpgettext(domain, context, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string with gettext context.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain)\n );\n };\n /** @type {IsRtl} */\n\n\n var isRTL = function isRTL() {\n return 'rtl' === _x('ltr', 'text direction');\n };\n /** @type {HasTranslation} */\n\n\n var hasTranslation = function hasTranslation(single, context, domain) {\n var _tannin$data, _tannin$data2;\n\n var key = context ? context + \"\\x04\" + single : single;\n var result = !!((_tannin$data = tannin.data) !== null && _tannin$data !== void 0 && (_tannin$data2 = _tannin$data[domain !== null && domain !== void 0 ? domain : 'default']) !== null && _tannin$data2 !== void 0 && _tannin$data2[key]);\n\n if (hooks) {\n /**\n * Filters the presence of a translation in the locale data.\n *\n * @param {boolean} hasTranslation Whether the translation is present or not..\n * @param {string} single The singular form of the translated text (used as key in locale data)\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation', result, single, context, domain);\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain);\n }\n\n return result;\n };\n\n if (initialData) {\n setLocaleData(initialData, initialDomain);\n }\n\n if (hooks) {\n /**\n * @param {string} hookName\n */\n var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) {\n if (I18N_HOOK_REGEXP.test(hookName)) {\n notifyListeners();\n }\n };\n\n hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved);\n hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved);\n }\n\n return {\n getLocaleData: getLocaleData,\n setLocaleData: setLocaleData,\n resetLocaleData: resetLocaleData,\n subscribe: subscribe,\n __: __,\n _x: _x,\n _n: _n,\n _nx: _nx,\n isRTL: isRTL,\n hasTranslation: hasTranslation\n };\n};\n//# sourceMappingURL=create-i18n.js.map","/**\n * Internal dependencies\n */\nimport { createI18n } from './create-i18n';\n/**\n * WordPress dependencies\n */\n\nimport { defaultHooks } from '@wordpress/hooks';\nvar i18n = createI18n(undefined, undefined, defaultHooks);\n/**\n * Default, singleton instance of `I18n`.\n */\n\nexport default i18n;\n/*\n * Comments in this file are duplicated from ./i18n due to\n * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722\n */\n\n/**\n * @typedef {import('./create-i18n').LocaleData} LocaleData\n * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback\n * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback\n */\n\n/**\n * Returns locale data by domain in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {string} [domain] Domain for which to get the data.\n * @return {LocaleData} Locale data.\n */\n\nexport var getLocaleData = i18n.getLocaleData.bind(i18n);\n/**\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var setLocaleData = i18n.setLocaleData.bind(i18n);\n/**\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var resetLocaleData = i18n.resetLocaleData.bind(i18n);\n/**\n * Subscribes to changes of locale data\n *\n * @param {SubscribeCallback} callback Subscription callback\n * @return {UnsubscribeCallback} Unsubscribe callback\n */\n\nexport var subscribe = i18n.subscribe.bind(i18n);\n/**\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n *\n * @param {string} text Text to translate.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated text.\n */\n\nexport var __ = i18n.__.bind(i18n);\n/**\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n *\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated context string without pipe.\n */\n\nexport var _x = i18n._x.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _n = i18n._n.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _nx = i18n._nx.bind(i18n);\n/**\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n *\n * @return {boolean} Whether locale is RTL.\n */\n\nexport var isRTL = i18n.isRTL.bind(i18n);\n/**\n * Check if there is a translation for a given string (in singular form).\n *\n * @param {string} single Singular form of the string to look up.\n * @param {string} [context] Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n * @return {boolean} Whether the translation exists or not.\n */\n\nexport var hasTranslation = i18n.hasTranslation.bind(i18n);\n//# sourceMappingURL=default-i18n.js.map","export { sprintf } from './sprintf';\nexport * from './create-i18n';\nexport { default as defaultI18n, setLocaleData, resetLocaleData, getLocaleData, subscribe, __, _x, _n, _nx, isRTL, hasTranslation } from './default-i18n';\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\nimport memoize from 'memize';\nimport sprintfjs from 'sprintf-js';\n/**\n * Log to console, once per message; or more precisely, per referentially equal\n * argument set. Because Jed throws errors, we log these to the console instead\n * to avoid crashing the application.\n *\n * @param {...*} args Arguments to pass to `console.error`\n */\n\nvar logErrorOnce = memoize(console.error); // eslint-disable-line no-console\n\n/**\n * Returns a formatted string. If an error occurs in applying the format, the\n * original format string is returned.\n *\n * @param {string} format The format of the string to generate.\n * @param {...*} args Arguments to apply to the format.\n *\n * @see https://www.npmjs.com/package/sprintf-js\n *\n * @return {string} The formatted string.\n */\n\nexport function sprintf(format) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return sprintfjs.sprintf.apply(sprintfjs, [format].concat(args));\n } catch (error) {\n logErrorOnce('sprintf error: \\n\\n' + error.toString());\n return format;\n }\n}\n//# sourceMappingURL=sprintf.js.map","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\n","/**\n * Creates a page elements manager.\n *\n * @param {Object} [initialElements={}] An object containing initial DOM elements.\n * @throws {Error} Throws an error if the `initialElements` is not an object.\n * @return {Object} An object with methods to get and add elements.\n */\nexport function createPageElements( initialElements = {} ) {\n\tif ( typeof initialElements !== 'object' || initialElements === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageElements: initialElements must be a non-null object'\n\t\t);\n\t}\n\n\tlet elements = initialElements;\n\n\t/**\n\t * Retrieve the initialized essential DOM elements.\n\t *\n\t * @return {Object} The initialized elements object.\n\t */\n\tfunction getElements() {\n\t\treturn elements;\n\t}\n\n\t/**\n\t * Add new elements to the elements object.\n\t *\n\t * @param {Object} newElements An object containing new elements to be added.\n\t * @throws {Error} Throws an error if the `newElements` is not a non-null object.\n\t * @return {void} Updates the elements object by merging the new elements into it.\n\t */\n\tfunction addElements( newElements ) {\n\t\tif ( typeof newElements !== 'object' || newElements === null ) {\n\t\t\tthrow new Error(\n\t\t\t\t'addElements: newElements must be a non-null object'\n\t\t\t);\n\t\t}\n\n\t\telements = { ...elements, ...newElements };\n\t}\n\n\treturn { getElements, addElements };\n}\n","/**\n * Creates a page state manager.\n *\n * @param {Object} [initialState={}] An object containing the initial state.\n * @throws {Error} Throws an error if the `initialState` is not a plain object.\n * @return {Object} An object with methods to initialize, get, and set the page state.\n */\nexport function createPageState( initialState = {} ) {\n\tif ( typeof initialState !== 'object' || initialState === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageState: initialState must be a non-null object'\n\t\t);\n\t}\n\n\tlet state = initialState;\n\n\t/**\n\t * Returns the current page state.\n\t *\n\t * @return {Object|null} The current state of the page or null if not initialized.\n\t */\n\tconst getState = () => state;\n\n\t/**\n\t * Returns a specific property from the current page state.\n\t *\n\t * @param {string} propertyName The name of the property to retrieve.\n\t * @return {*} The value of the specified property, or null if it doesn't exist.\n\t */\n\tconst getSingleState = ( propertyName ) => {\n\t\tconst value = Reflect.get( state, propertyName );\n\n\t\t// We convert `undefined` to `null` for a consistent API.\n\t\t// This makes it easier for users to handle the results since all missing properties return `null`.\n\t\treturn value === undefined ? null : value;\n\t};\n\n\t/**\n\t * Updates the page state with new values.\n\t *\n\t * @param {Object} newState The new values to update the state with.\n\t * @throws {Error} Throws an error if `newState` is not a plain object.\n\t * @return {void}\n\t */\n\tconst setState = ( newState ) => {\n\t\tif ( typeof newState !== 'object' || newState === null ) {\n\t\t\tthrow new Error( 'setState: newState must be a non-null object' );\n\t\t}\n\n\t\tstate = { ...state, ...newState };\n\t};\n\n\t/**\n\t * Updates a specific property in the page state with a new value.\n\t *\n\t * @param {string} propertyName The name of the property to update.\n\t * @param {*} value The new value to set for the property.\n\t * @return {void}\n\t */\n\tconst setSingleState = ( propertyName, value ) => {\n\t\tif ( Reflect.has( state, propertyName ) ) {\n\t\t\tReflect.set( state, propertyName, value );\n\t\t}\n\t};\n\n\treturn { getState, getSingleState, setState, setSingleState };\n}\n","export * from './createPageElements';\nexport * from './createPageState';\n","export const PREFIX = 'frm-page-skeleton';\nexport const SEARCH_RESULT_ITEM = 'frm-card-item';\nexport const VIEWS = {\n\tALL_ITEMS: 'all-items',\n};\n","/**\n * External dependencies\n */\nimport { createPageElements } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEWS } from '../constants';\nimport {\n\tcreateEmptyStateElement,\n\tgetEmptyStateElements,\n} from './emptyStateElement';\n\nconst bodyContent = document.getElementById( 'post-body-content' );\nconst sidebar = document.getElementById( `${ PREFIX }-sidebar` );\n\n// Append empty state elements to body content\nconst emptyState = createEmptyStateElement();\nbodyContent?.appendChild( emptyState );\nconst emptyStateElements = getEmptyStateElements();\n\nexport const { getElements, addElements } = createPageElements( {\n\tbodyContent,\n\n\t// Sidebar elements\n\tsidebar,\n\tsearchInput: sidebar.querySelector( '.frm-search-input' ),\n\tcategoryItems: sidebar.querySelectorAll( `.${ PREFIX }-cat` ),\n\tallItemsCategory: sidebar.querySelector(\n\t\t`.${ PREFIX }-cat[data-category=\"${ VIEWS.ALL_ITEMS }\"]`\n\t),\n\n\t// Empty State elements\n\t...emptyStateElements,\n} );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX } from '../constants';\n\nconst { tag, div, a, img } = window.frmDom;\n\n/**\n * Create and return the Empty State HTML element.\n *\n * @return {HTMLElement} The Empty State element.\n */\nexport function createEmptyStateElement() {\n\tconst button = a( {\n\t\tclassName: 'button button-primary frm-button-primary',\n\t} );\n\tbutton.setAttribute( 'role', 'button' );\n\n\treturn div( {\n\t\tid: `${ PREFIX }-empty-state`,\n\t\tclassName: `frm-flex-col frm-flex-center frm-gap-md ${ HIDDEN_CLASS }`,\n\t\tchildren: [\n\t\t\timg( {\n\t\t\t\tsrc: `${ PLUGIN_URL }/images/page-skeleton/empty-state.svg`,\n\t\t\t\talt: __( 'Empty State', 'formidable' ),\n\t\t\t} ),\n\t\t\tdiv( {\n\t\t\t\tclassName: 'frmcenter',\n\t\t\t\tchildren: [\n\t\t\t\t\ttag( 'h2', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-title frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t\ttag( 'p', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-text frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t],\n\t\t\t} ),\n\t\t\tbutton,\n\t\t],\n\t} );\n}\n\n/**\n * Return the elements related to the Empty State.\n *\n * @return {Object} Object containing Empty State related DOM elements.\n */\nexport function getEmptyStateElements() {\n\tconst emptyState = document.querySelector( `#${ PREFIX }-empty-state` );\n\n\treturn {\n\t\temptyState,\n\t\temptyStateTitle: emptyState?.querySelector( `.${ PREFIX }-title` ),\n\t\temptyStateText: emptyState?.querySelector( `.${ PREFIX }-text` ),\n\t\temptyStateButton: emptyState?.querySelector( '.button' ),\n\t};\n}\n","export * from './elements';\n","/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { onClickPreventDefault, frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setState } from '../shared';\nimport { resetSearchInput } from '.';\n\n/**\n * Manages event handling for sidebar category links.\n *\n * @return {void}\n */\nexport function addCategoryEvents() {\n\tconst { categoryItems } = getElements();\n\n\t// Attach click and keyboard event listeners to each sidebar category\n\tcategoryItems.forEach( ( category ) => {\n\t\tonClickPreventDefault( category, onCategoryClick );\n\t\tcategory.addEventListener( 'keydown', onCategoryKeydown );\n\t} );\n}\n\n/**\n * Handles the click event on a category item.\n *\n * @private\n * @param {Event} event The click event object.\n */\nconst onCategoryClick = ( event ) => {\n\tconst clickedCategory = event.currentTarget;\n\tconst newSelectedCategory = clickedCategory.getAttribute( 'data-category' );\n\tlet { selectedCategory, selectedCategoryEl, notEmptySearchText } =\n\t\tgetState();\n\n\t// If the selected category hasn't changed, return early\n\tif ( selectedCategory === newSelectedCategory ) {\n\t\treturn;\n\t}\n\n\t/**\n\t * Filter hook to modify the selected category.\n\t *\n\t * @param {string} selectedCategory The selected category\n\t */\n\tselectedCategory = wp.hooks.applyFilters(\n\t\t'frmPage.selectedCategory',\n\t\tnewSelectedCategory\n\t);\n\n\t// Highlight the newly clicked category and update the application state\n\tselectedCategoryEl.classList.remove( CURRENT_CLASS );\n\tselectedCategoryEl = clickedCategory;\n\tselectedCategoryEl.classList.add( CURRENT_CLASS );\n\tsetState( { selectedCategory, selectedCategoryEl } );\n\n\t// Reset the search input if it contains text\n\tif ( notEmptySearchText ) {\n\t\tresetSearchInput();\n\t}\n\n\t/**\n\t * Trigger custom action to update category content.\n\t *\n\t * @param {string} selectedCategory The selected category.\n\t */\n\twp.hooks.doAction( 'frmPage.onCategoryClick', selectedCategory );\n\n\t// Smoothly display the updated UI elements\n\tconst { bodyContent } = getElements();\n\tnew frmAnimate( bodyContent ).fadeIn();\n};\n\n/**\n * Handles the keyboard event on a category item.\n *\n * @param {KeyboardEvent} event The keyboard event object.\n * @return {void}\n */\nfunction onCategoryKeydown( event ) {\n\t// Only respond to 'Enter' or 'Space' key presses\n\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\tevent.preventDefault();\n\t\tonCategoryClick( event );\n\t}\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Resets the value of the search input and triggers an input event.\n *\n * @return {void}\n */\nexport function resetSearchInput() {\n\tconst { searchInput } = getElements();\n\n\tsearchInput.value = '';\n\tsearchInput.dispatchEvent( new Event( 'input', { bubbles: true } ) );\n}\n\nexport * from './categoryListener';\n","export * from './constants';\nexport * from './elements';\nexport * from './shared';\nexport * from './events';\n","export * from './pageState';\n","/**\n * External dependencies\n */\nimport { createPageState } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEWS } from '../constants';\n\nconst { allItemsCategory } = getElements();\n\nexport const { getState, getSingleState, setState, setSingleState } =\n\tcreatePageState( {\n\t\tnotEmptySearchText: false,\n\t\tselectedCategory: VIEWS.ALL_ITEMS,\n\t\tselectedCategoryEl: allItemsCategory,\n\t} );\n","export class frmAnimate {\n\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements\n\t * @param {'default'|'cascade'|'cascade-3d'} type - The animation type: default | cascade | cascade-3d\n\t *\n\t */\n\tconstructor( elements, type = 'default' ) {\n\t\tthis.elements = elements;\n\t\tthis.type = type;\n\n\t\tthis.prepareElements();\n\t}\n\n\t/**\n\t * Init animation - fadeIn.\n\t * Requires this.type = 'default';\n\t * ex: new frmAnimate( elements ).fadeIn();\n\t */\n\tfadeIn() {\n\t\tthis.applyStyleToElements( element => {\n\t\t\telement.classList.add( 'frm-fadein-up' );\n\n\t\t\telement.addEventListener( 'animationend', () => {\n\t\t\t\tthis.resetOpacity();\n\t\t\t\telement.classList.remove( 'frm-fadein-up' );\n\t\t\t}, { once: true });\n\t\t});\n\t}\n\n\t/**\n\t * Init animation - cascadeFadeIn.\n\t * Requires this.type = 'cascade'|'cascade-3d';\n\t * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn();\n\t * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn();\n\t *\n\t * @param {float} delay - The transition delay value.\n\t *\n\t */\n\tcascadeFadeIn( delay = 0.03 ) {\n\t\tsetTimeout( () => {\n\t\t\tthis.applyStyleToElements( ( element, index ) => {\n\t\t\t\telement.classList.remove( 'frm-animate' );\n\t\t\t\telement.style.transitionDelay = ( index + 1 ) * delay + 's';\n\t\t\t});\n\t\t}, 200 );\n\t}\n\n\tprepareElements() {\n\t\tthis.applyStyleToElements( element => {\n\t\t\tif ( 'default' === this.type ) {\n\t\t\t\telement.style.opacity = '0.0';\n\t\t\t}\n\t\t\tif ( 'cascade' === this.type ) {\n\t\t\t\telement.classList.add( 'frm-init-cascade-animation' );\n\t\t\t}\n\t\t\tif ( 'cascade-3d' === this.type ) {\n\t\t\t\telement.classList.add( 'frm-init-fadein-3d' );\n\t\t\t}\n\t\t\telement.classList.add( 'frm-animate' );\n\t\t});\n\t}\n\n\tresetOpacity() {\n\t\tthis.applyStyleToElements( element => element.style.opacity = '1.0' );\n\t}\n\n\tapplyStyleToElements( callback ) {\n\t\tif ( this.elements instanceof Element ) {\n\t\t\tcallback( this.elements, 0 );\n\t\t\treturn;\n\t\t}\n\t\tif ( 0 < this.elements.length ) {\n\t\t\tthis.elements.forEach( ( element, index ) => callback( element, index ) );\n\t\t}\n\t}\n}\n","// Initialize lastPromise with a resolved promise as the starting point for the queue\nlet lastPromise = Promise.resolve();\n\n/**\n * Adds a task to the request queue.\n *\n * @param {function(): Promise} task A function that returns a promise.\n * @return {Promise} The new last promise in the queue.\n */\nexport const addToRequestQueue = task => lastPromise = lastPromise.then( task ).catch( task );\n","/**\n * Internal dependencies\n */\nimport { hide, show } from '.';\n\n/**\n * Displays form validation error messages.\n *\n * @param {string} inputId The ID selector for the input field with the error.\n * @param {string} errorId The ID selector for the error message display element.\n * @param {string} type The categorization of the error (e.g., \"invalid\", \"empty\").\n * @param {string} [message] Optional. The specific error message to display.\n * @return {void}\n */\nexport const showFormError = ( inputId, errorId, type, message ) => {\n\tconst inputElement = document.querySelector( inputId );\n\tconst errorElement = document.querySelector( errorId );\n\n\tif ( ! inputElement || ! errorElement ) {\n\t\tconsole.warn( 'showFormError: Unable to find input or error element.' );\n\t\treturn;\n\t}\n\n\t// If a message is provided, update the span element's text that matches the error type\n\tif ( message ) {\n\t\tconst span = errorElement.querySelector( `span[frm-error=\"${type}\"]` );\n\t\tif ( span ) {\n\t\t\tspan.textContent = message;\n\t\t}\n\t}\n\n\t// Assign the error type and make the error message visible\n\terrorElement.setAttribute( 'frm-error', type );\n\tshow( errorElement );\n\n\t// Hide the error message when the user starts typing in the faulty input field\n\tinputElement.addEventListener( 'keyup', () => {\n\t\thide( errorElement );\n\t}, { once: true });\n};\n","export const { onClickPreventDefault } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\n","/**\n * Initializes URL and URLSearchParams objects from the current window's location\n */\nconst url = new URL( window.location.href );\nconst urlParams = url.searchParams;\n\n/**\n * Gets the value of a specified query parameter from the current URL.\n *\n * @param {string} paramName The name of the query parameter to retrieve.\n * @return {string|null} The value associated with the specified query parameter name, or null if not found.\n */\nexport const getQueryParam = paramName => urlParams.get( paramName );\n\n/**\n * Removes a query parameter from the current URL and returns the updated URL string.\n *\n * @param {string} paramName The name of the query parameter to remove.\n * @return {string} The updated URL string.\n */\nexport const removeQueryParam = ( paramName ) => {\n\turlParams.delete( paramName );\n\turl.search = urlParams.toString();\n\treturn url.toString();\n};\n\n/**\n * Sets the value of a query parameter in the current URL and optionally updates the browser's history state.\n *\n * @param {string} paramName The name of the query parameter to set.\n * @param {string} paramValue The value to set for the query parameter.\n * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'.\n * @return {string} The updated URL string.\n */\nexport const setQueryParam = ( paramName, paramValue, updateMethod = 'pushState' ) => {\n\turlParams.set( paramName, paramValue );\n\turl.search = urlParams.toString();\n\n\tif ([ 'pushState', 'replaceState' ].includes( updateMethod ) ) {\n\t\tconst state = {[paramName]: paramValue};\n\t\twindow.history[updateMethod]( state, '', url );\n\t}\n\n\treturn url.toString();\n};\n\n/**\n * Checks if a query parameter exists in the current URL.\n *\n * @param {string} paramName The name of the query parameter to check.\n * @return {boolean} True if the query parameter exists, otherwise false.\n */\nexport const hasQueryParam = paramName => urlParams.has( paramName );\n","/**\n * Validates an email address using a regular expression.\n *\n * @param {string} email The email address to validate.\n * @return {boolean} True if the email address is valid, otherwise false.\n */\nexport const isValidEmail = email =>\n\ttypeof email === 'string' ? /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/i.test( email ) : false;\n\n/**\n * Validates if the given element is an instance of HTMLElement.\n *\n * @param {any} element Element to be checked.\n * @return {boolean} True if it's an HTMLElement, otherwise false.\n */\nexport const isHTMLElement = element => element instanceof HTMLElement || console.warn( 'Invalid argument: Element must be an instance of HTMLElement' ) || false;\n\n/**\n * Checks if the given object is empty.\n *\n * @param {Object} obj The object to check.\n * @return {boolean} True if the object is empty, otherwise false.\n */\nexport const isEmptyObject = obj => Object.keys( obj ).length === 0 && obj.constructor === Object;\n","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\n\n/**\n * Shows specified elements by removing the hidden class.\n *\n * @param {Array} elements An array of elements to show.\n * @return {void}\n */\nexport const showElements = elements =>\n\tArray.from( elements )?.forEach( element => show( element ) );\n\n/**\n * Hides specified elements by adding the hidden class.\n *\n * @param {Array} elements An array of elements to hide.\n * @return {void}\n */\nexport const hideElements = elements =>\n\tArray.from( elements )?.forEach( element => hide( element ) );\n\n/**\n * Removes the hidden class to show the element.\n *\n * @param {Element} element The element to show.\n * @return {void}\n */\nexport const show = element => element?.classList.remove( HIDDEN_CLASS );\n\n/**\n * Adds the hidden class to hide the element.\n *\n * @param {Element} element The element to hide.\n * @return {void}\n */\nexport const hide = element => element?.classList.add( HIDDEN_CLASS );\n\n/**\n * Checks if an element is visible.\n *\n * @param {HTMLElement} element The HTML element to check for visibility.\n * @return {boolean} Returns true if the element is visible, otherwise false.\n */\nexport const isVisible = element => {\n\tconst styles = window.getComputedStyle( element );\n\treturn styles.getPropertyValue( 'display' ) !== 'none';\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, applicationsUrl } from '../shared';\nimport { addElements, getElements } from './elements';\n\nconst { tag, div, span, a, img } = window.frmDom;\n\n// Application templates element\nlet applicationTemplates;\n\n// Base URL for the thumbnail images of applications\nconst thumbnailBaseURL = `${PLUGIN_URL}/images/applications/thumbnails`;\n\n/**\n * Create and return the application templates HTML element.\n *\n * @param {Object[]} applications Array of application objects.\n * @return {HTMLElement|null} The application templates element or null if no applications are provided.\n */\nexport function createApplicationTemplates( applications ) {\n\tif ( ! applications || ! applications.length ) {\n\t\treturn;\n\t}\n\n\tconst templateItems = applications.map( template => createTemplateItem( template ) );\n\n\tapplicationTemplates = div({\n\t\tid: `${PREFIX}-applications`,\n\t\tclassName: HIDDEN_CLASS,\n\t\tchildren: [\n\t\t\ttag( 'h2', {\n\t\t\t\ttext: __( 'Application Templates' ),\n\t\t\t\tclassName: 'frm-text-sm frm-mb-sm'\n\t\t\t}),\n\t\t\ttag( 'ul', {\n\t\t\t\tclassName: `${PREFIX}-list frm-list-grid-layout`,\n\t\t\t\tchildren: templateItems\n\t\t\t})\n\t\t]\n\t});\n}\n\n/**\n * Create and return an individual item element for a application template.\n *\n * @private\n * @param {Object} template The application object.\n * @return {HTMLElement} Element representing a single application template.\n */\nfunction createTemplateItem( template ) {\n\tconst { name, key, hasLiteThumbnail, isWebp } = template;\n\tconst thumbnailURL = hasLiteThumbnail ?\n\t\t( isWebp ? `${thumbnailBaseURL}/${key}.webp` : `${thumbnailBaseURL}/${key}.png` ) :\n\t\t`${thumbnailBaseURL}/placeholder.svg`;\n\n\treturn tag( 'li', {\n\t\tclassName: 'frm-card-item',\n\t\tdata: {\n\t\t\thref: `${applicationsUrl}&triggerViewApplicationModal=1&template=${key}`,\n\t\t\t'frm-search-text': name.toLowerCase()\n\t\t},\n\t\tchildren: [\n\t\t\tdiv({\n\t\t\t\tclassName: `${PREFIX}-item-icon`,\n\t\t\t\tchild: img({ src: thumbnailURL })\n\t\t\t}),\n\t\t\tdiv({\n\t\t\t\tclassName: `${PREFIX}-item-body`,\n\t\t\t\tchildren: [\n\t\t\t\t\tspan({\n\t\t\t\t\t\ttext: __( 'Ready Made Solution', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-meta-tag frm-orange-tag frm-text-xs'\n\t\t\t\t\t}),\n\t\t\t\t\ttag( 'h3', {\n\t\t\t\t\t\ttext: name,\n\t\t\t\t\t\tclassName: 'frm-text-sm frm-font-medium frm-m-0'\n\t\t\t\t\t}),\n\t\t\t\t\ta({\n\t\t\t\t\t\ttext: __( 'See all applications', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-text-xs frm-font-semibold',\n\t\t\t\t\t\thref: applicationsUrl\n\t\t\t\t\t})\n\t\t\t\t]\n\t\t\t})\n\t\t]\n\t});\n};\n\n/**\n * Inject application Templates elements into the DOM and the elements object.\n *\n * @return {void}\n */\nexport function addApplicationTemplatesElement() {\n\tconst elements = getElements();\n\n\tif ( elements.applicationTemplates || undefined === applicationTemplates ) {\n\t\treturn;\n\t}\n\n\telements.bodyContent.appendChild( applicationTemplates );\n\n\taddElements({\n\t\tapplicationTemplates,\n\t\tapplicationTemplatesTitle: applicationTemplates.querySelector( 'h2' ),\n\t\tapplicationTemplatesList: applicationTemplates.querySelector( `.${PREFIX}-list` ),\n\t\tapplicationTemplateItems: applicationTemplates.querySelectorAll( '.frm-card-item' )\n\t});\n}\n","/**\n * External dependencies\n */\nimport { getElements, addElements, PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS } from '../shared';\n\nconst { bodyContent } = getElements();\nconst templatesList = document.getElementById( `${PREFIX}-list` );\nconst customTemplatesSection = document.getElementById( `${PREFIX}-custom-list-section` );\nconst favoritesCategory = document.querySelector(\n\t`.${SKELETON_PREFIX}-cat[data-category=\"${VIEW_SLUGS.FAVORITES}\"]`\n);\nconst modal = document.getElementById( `${PREFIX}-modal` );\n\naddElements({\n\t// Body elements\n\theaderCancelButton: document.getElementById( 'frm-publishing' )?.querySelector( 'a' ),\n\tcreateFormButton: document.getElementById( `${PREFIX}-create-form` ),\n\tpageTitle: document.getElementById( `${PREFIX}-page-title` ),\n\tpageTitleText: document.getElementById( `${PREFIX}-page-title-text` ),\n\tpageTitleDivider: document.getElementById( `${PREFIX}-page-title-divider` ),\n\tupsellBanner: document.getElementById( `${PREFIX}-upsell-banner` ),\n\textraTemplateCountElements: document.querySelectorAll( `.${PREFIX}-extra-templates-count` ),\n\n\t// Templates elements\n\ttemplatesList,\n\ttemplateItems: templatesList.querySelectorAll( '.frm-card-item' ),\n\tavailableTemplateItems: templatesList.querySelectorAll( `.frm-card-item:not(.${PREFIX}-locked-item)` ),\n\ttwinFeaturedTemplateItems: templatesList.querySelectorAll( `.${PREFIX}-featured-item` ),\n\tfeaturedTemplatesList: document.getElementById( `${PREFIX}-featured-list` ),\n\n\t// Custom Templates Section elements\n\tcustomTemplatesSection,\n\tcustomTemplateItems: customTemplatesSection.querySelectorAll( '.frm-card-item' ),\n\tcustomTemplatesTitle: document.getElementById( `${PREFIX}-custom-list-title` ),\n\tcustomTemplatesList: document.getElementById( `${PREFIX}-custom-list` ),\n\n\t// Sidebar elements\n\tfavoritesCategory,\n\tfavoritesCategoryCountEl: favoritesCategory?.querySelector(\n\t\t`.${SKELETON_PREFIX}-cat-count`\n\t),\n\tavailableTemplatesCategory: document.querySelector(\n\t\t`.${SKELETON_PREFIX}-cat[data-category=\"${VIEW_SLUGS.AVAILABLE_TEMPLATES}\"]`\n\t),\n\n\t// Modal elements\n\tmodal,\n\tmodalItems: modal?.querySelectorAll( `.${PREFIX}-modal-item` ),\n\t// Create New Template Modal\n\tshowCreateTemplateModalButton: document.getElementById( 'frm-show-create-template-modal' ),\n\tcreateTemplateModal: document.getElementById( 'frm-create-template-modal' ),\n\tcreateTemplateFormsDropdown: document.getElementById( 'frm-create-template-modal-forms-select' ),\n\tcreateTemplateName: document.getElementById( 'frm_create_template_name' ),\n\tcreateTemplateDescription: document.getElementById( 'frm_create_template_description' ),\n\tcreateTemplateButton: document.getElementById( 'frm-create-template-button' ),\n\t// Renew Account Modal\n\trenewAccountModal: document.getElementById( 'frm-renew-modal' ),\n\t// Upgrade Modal\n\tupgradeModal: document.getElementById( 'frm-form-upgrade-modal' ),\n\tupgradeModalTemplateNames: modal?.querySelectorAll( '.frm-upgrade-modal-template-name' ),\n\tupgradeModalPlansIcons: modal?.querySelectorAll( '.frm-upgrade-modal-plan-icon' ),\n\tupgradeModalLink: document.getElementById( 'frm-upgrade-modal-link' ),\n\n\t// New Template Form elements\n\tnewTemplateForm: document.getElementById( 'frm-new-template' ),\n\tnewTemplateNameInput: document.getElementById( 'frm_template_name' ),\n\tnewTemplateDescriptionInput: document.getElementById( 'frm_template_desc' ),\n\tnewTemplateLinkInput: document.getElementById( 'frm_link' ),\n\tnewTemplateActionInput: document.getElementById( 'frm_action_type' ),\n\n\t// Add children of the bodyContent to the elements object.\n\tbodyContentChildren: bodyContent?.children\n});\n\nexport { getElements, addElements };\n","export * from './elements';\nexport * from './applicationTemplatesElement';\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for an application template.\n *\n * @return {void}\n */\nexport function addApplicationTemplateEvents() {\n\tconst { applicationTemplateItems } = getElements();\n\n\tif ( undefined === applicationTemplateItems ) {\n\t\treturn;\n\t}\n\n\t// Attach click event listener\n\tapplicationTemplateItems.forEach( template => {\n\t\ttemplate.addEventListener( 'click', onApplicationTemplateClick );\n\t});\n}\n\n/**\n * Handles the click event on an application template.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onApplicationTemplateClick = ( event ) => {\n\t// Check if the clicked element is an anchor tag\n\tif ( event.target.closest( 'a' ) ) {\n\t\treturn;\n\t}\n\n\tconst applicationTemplate = event.currentTarget;\n\twindow.location.href = applicationTemplate.dataset.href;\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for the \"Create a blank form\" button.\n *\n * @return {void}\n */\nfunction addCreateFormButtonEvents() {\n\tconst { createFormButton } = getElements();\n\n\t// Attach click event listener\n\tonClickPreventDefault( createFormButton, onCreateFormButtonClick );\n}\n\n/**\n * Handles the click event on the \"Create a blank form\" button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onCreateFormButtonClick = () => {\n\tconst { createFormButton, newTemplateForm, newTemplateNameInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\n\tnewTemplateNameInput.value = '';\n\tnewTemplateActionInput.value = 'frm_install_form';\n\tinstallNewForm( newTemplateForm, 'frm_install_form', createFormButton );\n};\n\nexport default addCreateFormButtonEvents;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n*/\nimport { getElements } from '../elements';\nimport { getState } from '../shared';\nimport { showCreateTemplateModal } from '../ui';\nimport { isCustomCategory } from '../utils';\n\n/**\n * Manages event handling for the 'Create New Template' modal.\n *\n * @return {void}\n */\nfunction addCreateTemplateEvents() {\n\tconst {\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton,\n\t\tshowCreateTemplateModalButton,\n\t\temptyStateButton\n\t} = getElements();\n\n\t// Show the 'Create New Template' modal when either empty state or show modal button is clicked\n\tonClickPreventDefault( showCreateTemplateModalButton, onShowCreateTemplateModalButtonClick );\n\tonClickPreventDefault( emptyStateButton, onShowCreateTemplateModalButtonClick );\n\n\t// Handle changes in the forms selection dropdown for creating a new template\n\tcreateTemplateFormsDropdown.addEventListener( 'change', onFormsSelectChange );\n\n\t// Create a new template when the create button inside the modal is clicked\n\tonClickPreventDefault( createTemplateButton, onCreateTemplateButtonClick );\n}\n\n/**\n * Handles the click event on the 'Create Template' button, showing the 'Create New Template' modal.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onShowCreateTemplateModalButtonClick = () => {\n\tconst { selectedCategory } = getState();\n\tif ( ! isCustomCategory( selectedCategory ) ) {\n\t\treturn;\n\t}\n\n\tshowCreateTemplateModal();\n};\n\n/**\n * Handles changes in the forms selection dropdown for creating a new template.\n *\n * @private\n * @param {Event} event The change event object.\n * @return {void}\n */\nconst onFormsSelectChange = () => {\n\tconst { createTemplateFormsDropdown: formsSelect } = getElements();\n\tconst formId = formsSelect.value;\n\n\tif ( ! formId || formId === 'no-forms' ) {\n\t\ttoggleDisableModalElements( true );\n\t\treturn;\n\t}\n\n\ttoggleDisableModalElements( false );\n\n\tconst selectedOption = formsSelect.options[formsSelect.selectedIndex];\n\tconst formDescription = selectedOption.dataset.description.trim();\n\n\tlet formName = selectedOption.dataset.name.trim();\n\tconst templateString = ` ${__( 'Template', 'formidable' )}`;\n\tif ( ! formName.endsWith( templateString ) ) {\n\t\tformName += templateString;\n\t}\n\n\tconst { createTemplateName, createTemplateDescription } = getElements();\n\tcreateTemplateName.value = formName;\n\tcreateTemplateDescription.value = formDescription;\n};\n\n/**\n * Toggles the disabled state of elements in the 'Create Template' modal.\n *\n * @private\n * @param {boolean} shouldDisable True to disable, false to enable.\n * @return {void}\n */\nconst toggleDisableModalElements = ( shouldDisable ) => {\n\tconst { createTemplateName, createTemplateDescription, createTemplateButton } = getElements();\n\n\t// Toggle the disabled attribute for input and textarea\n\t[ createTemplateName, createTemplateDescription ].forEach( element => {\n\t\telement.disabled = shouldDisable;\n\t\tif ( shouldDisable ) {\n\t\t\telement.value = ''; // Clear the content for input and textarea\n\t\t}\n\t});\n\n\t// Toggle the disabled class for the button\n\tcreateTemplateButton.classList.toggle( 'disabled', shouldDisable );\n};\n\n/**\n * Handles the click event on the 'Create Template' button to create a new template.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onCreateTemplateButtonClick = () => {\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst actionName = 'frm_create_template';\n\tconst {\n\t\tnewTemplateForm,\n\t\tnewTemplateActionInput,\n\t\tnewTemplateNameInput,\n\t\tnewTemplateDescriptionInput,\n\t\tnewTemplateLinkInput,\n\t\tcreateTemplateName,\n\t\tcreateTemplateDescription,\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton\n\t} = getElements();\n\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateNameInput.value = createTemplateName.value.trim();\n\tnewTemplateDescriptionInput.value = createTemplateDescription.value.trim();\n\tnewTemplateLinkInput.value = createTemplateFormsDropdown.value;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, createTemplateButton );\n};\n\nexport default addCreateTemplateEvents;\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault, addToRequestQueue, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, getState, setSingleState } from '../shared';\nimport { showFavoritesEmptyState } from '../ui';\nimport { isFavoriteTemplate, isCustomTemplate, isFeaturedTemplate, isFavoritesCategory } from '../utils';\n\nconst FAVORITE_BUTTON_CLASS = `.${PREFIX}-item-favorite-button`;\nconst HEART_ICON_SELECTOR = `${FAVORITE_BUTTON_CLASS} use`;\nconst FILLED_HEART_ICON = '#frm_heart_solid_icon';\nconst LINEAR_HEART_ICON = '#frm_heart_icon';\nconst OPERATION = {\n\tADD: 'add',\n\tREMOVE: 'remove'\n};\n\n/**\n * Manages event handling for favorite buttons.\n *\n * @return {void}\n */\nfunction addFavoriteButtonEvents() {\n\tconst favoriteButtons = document.querySelectorAll( FAVORITE_BUTTON_CLASS );\n\n\t// Attach click event listeners to each favorite button\n\tfavoriteButtons.forEach( favoriteButton =>\n\t\tonClickPreventDefault( favoriteButton, onFavoriteButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the add to favorite button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onFavoriteButtonClick = ( event ) => {\n\tconst favoriteButton = event.currentTarget;\n\tconst { templatesList, featuredTemplatesList, favoritesCategoryCountEl, customTemplatesTitle } = getElements();\n\n\t/**\n\t * Get necessary template information\n\t */\n\tconst template = favoriteButton.closest( '.frm-card-item' );\n\tconst templateId = template.dataset.id;\n\tconst isFavorited = isFavoriteTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\tconst isTemplateFeatured = isFeaturedTemplate( template );\n\n\t/**\n\t * Toggle the favorite status in the UI.\n\t * If template is featured, toggle its twin version in the respective list.\n\t */\n\tlet twinFeaturedTemplate = null;\n\n\ttemplate.classList.toggle( `${PREFIX}-favorite-item`, ! isFavorited );\n\tif ( isTemplateFeatured ) {\n\t\tconst templateList = template.closest( `#${PREFIX}-list` ) ?\n\t\t\tfeaturedTemplatesList :\n\t\t\ttemplatesList;\n\n\t\tif ( templateList ) {\n\t\t\ttwinFeaturedTemplate = templateList.querySelector(\n\t\t\t\t`.frm-card-item[data-id=\"${templateId}\"]`\n\t\t\t);\n\t\t\t// Toggle twin template's favorite status\n\t\t\ttwinFeaturedTemplate.classList.toggle(\n\t\t\t\t`${PREFIX}-favorite-item`,\n\t\t\t\t! isFavorited\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Update favorite counts and icons based on the new state\n\t */\n\tconst { selectedCategory, favoritesCount } = getState();\n\tconst currentOperation = isFavorited ? OPERATION.REMOVE : OPERATION.ADD;\n\tconst heartIcon = template.querySelector( HEART_ICON_SELECTOR );\n\tconst twinTemplateHeartIcon =\n\t\ttwinFeaturedTemplate?.querySelector( HEART_ICON_SELECTOR );\n\n\tif ( OPERATION.ADD === currentOperation ) {\n\t\t// Increment favorite counts\n\t\t++favoritesCount.total;\n\t\tisTemplateCustom ? ++favoritesCount.custom : ++favoritesCount.default;\n\t\t// Set heart icon to filled\n\t\theartIcon.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t} else {\n\t\t// Decrement favorite counts\n\t\t--favoritesCount.total;\n\t\tisTemplateCustom ? --favoritesCount.custom : --favoritesCount.default;\n\t\t// Set heart icon to outline\n\t\theartIcon.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t}\n\n\t// Update UI and state to reflect new favorite counts\n\tfavoritesCategoryCountEl.textContent = favoritesCount.total;\n\tsetSingleState( 'favoritesCount', favoritesCount );\n\n\t/**\n\t * Hide UI elements if 'Favorites' is active and counts are zero.\n\t */\n\tif ( isFavoritesCategory( selectedCategory ) ) {\n\t\tif ( 0 === favoritesCount.total ) {\n\t\t\tshowFavoritesEmptyState();\n\t\t}\n\n\t\thide( template );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( templatesList );\n\t\t}\n\n\t\tif ( 0 === favoritesCount.custom || 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Update server-side data for favorite templates\n\taddToRequestQueue( () => updateFavoriteTemplate( templateId, currentOperation, isTemplateCustom ) );\n};\n\n/**\n * Update server-side data for favorite templates.\n *\n * @param {string} id The template ID.\n * @param {string} operation The operation to perform ('add' or 'remove').\n * @param {boolean} isCustom Flag indicating whether the template is custom.\n * @return {Promise}\n */\nfunction updateFavoriteTemplate( id, operation, isCustom ) {\n\tconst formData = new FormData();\n\tconst { doJsonPost } = frmDom.ajax;\n\n\tformData.append( 'template_id', id );\n\tformData.append( 'operation', operation );\n\tformData.append( 'is_custom_template', isCustom );\n\n\treturn doJsonPost( 'add_or_remove_favorite_template', formData );\n}\n\nexport default addFavoriteButtonEvents;\n","/**\n * External dependencies\n */\nimport { addCategoryEvents } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport addCreateFormButtonEvents from './createFormButtonListener';\nimport addFavoriteButtonEvents from './favoriteButtonListener';\nimport addUseTemplateButtonEvents from './useTemplateButtonListener';\nimport addSearchEvents from './searchListener';\nimport addCreateTemplateEvents from './createTemplateListeners';\nimport { showSelectedCategory } from '../ui';\n\n/**\n * Attaches event listeners for handling user interactions.\n *\n * @return {void}\n */\nexport function addEventListeners() {\n\taddCategoryEvents();\n\twp.hooks.addAction( 'frmPage.onCategoryClick', 'frmFormTemplates', selectedCategory => {\n\t\t// Display templates of the selected category\n\t\tshowSelectedCategory( selectedCategory );\n\t});\n\n\taddCreateFormButtonEvents();\n\taddFavoriteButtonEvents();\n\taddUseTemplateButtonEvents();\n\taddSearchEvents();\n\taddCreateTemplateEvents();\n}\n\nexport { addApplicationTemplateEvents } from './applicationTemplateListener';\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\nimport { resetSearchInput } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setSingleState, VIEW_SLUGS } from '../shared';\nimport { showSearchState, displaySearchElements } from '../ui';\n\nconst { init: initSearch } = window.frmDom.search;\n\n/**\n * Adds search-related event listeners by calling the 'initSearch' function.\n *\n * @see frmDom.search method\n * @return {void}\n */\nfunction addSearchEvents() {\n\tconst { searchInput, emptyStateButton } = getElements();\n\n\tinitSearch( searchInput, 'frm-card-item', { handleSearchResult } );\n\tonClickPreventDefault( emptyStateButton, onEmptyStateButtonClick );\n}\n\n/**\n * Manages UI state based on search results and input value.\n *\n * @private\n * @param {Object} args Contains flags for search status.\n * @param {boolean} args.foundSomething True if search yielded results.\n * @param {boolean} args.notEmptySearchText True if search input is not empty.\n * @param {Event} event The event object (input, search, or change event).\n * @return {void}\n */\nfunction handleSearchResult({ foundSomething, notEmptySearchText }, event ) {\n\t// Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events,\n\t// triggering this method twice on 'x' button click.\n\tif ( event && event.type === 'search' && event.target.value === '' ) {\n\t\treturn;\n\t}\n\n\tconst state = getState();\n\tconst { allItemsCategory } = getElements();\n\n\tsetSingleState( 'notEmptySearchText', notEmptySearchText );\n\n\t// Revert to 'All Templates' if search and selected category are both empty\n\tif ( ! state.notEmptySearchText && ! state.selectedCategory ) {\n\t\tallItemsCategory.dispatchEvent(\n\t\t\tnew Event( 'click', { bubbles: true })\n\t\t);\n\n\t\treturn;\n\t}\n\n\t// Display search state if a category is selected\n\tif ( state.selectedCategory ) {\n\t\tshowSearchState( notEmptySearchText );\n\n\t\t// Setting \"selectedCategory\" to an empty string as a flag for search state\n\t\tif ( notEmptySearchText ) {\n\t\t\tsetSingleState( 'selectedCategory', '' );\n\t\t}\n\t}\n\n\tdisplaySearchElements( foundSomething, notEmptySearchText );\n}\n\n/**\n * Handles the click event on the empty state button.\n *\n * @private\n * @return {void}\n */\nconst onEmptyStateButtonClick = () => {\n\tconst { emptyState } = getElements();\n\tif ( VIEW_SLUGS.SEARCH !== emptyState.dataset?.view ) {\n\t\treturn;\n\t}\n\n\t// Set selectedCategory to '' as search state flag that triggers ALL_ITEMS category if search input is empty\n\t// @see handleSearchResult()\n\tsetSingleState( 'selectedCategory', '' );\n\tresetSearchInput();\n\n\tconst { searchInput } = getElements();\n\tsearchInput.focus();\n};\n\nexport default addSearchEvents;\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, setSingleState } from '../shared';\nimport { showLockedTemplateModal } from '../ui/';\nimport { isCustomTemplate, isLockedTemplate } from '../utils';\n\n/**\n * Manages event handling for use template buttons.\n *\n * @return {void}\n */\nfunction addUseTemplateButtonEvents() {\n\tconst useTemplateButtons = document.querySelectorAll( `.${PREFIX}-use-template-button` );\n\n\t// Attach click event listeners to each use template button\n\tuseTemplateButtons.forEach( useTemplateButton =>\n\t\tuseTemplateButton.addEventListener( 'click', onUseTemplateButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the use template button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onUseTemplateButtonClick = ( event ) => {\n\tconst useTemplateButton = event.currentTarget;\n\n\tconst template = useTemplateButton.closest( '.frm-card-item' );\n\tconst isLocked = isLockedTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\n\t// Allow the default link behavior, if the template is custom and not locked\n\tif ( ! isLocked && isTemplateCustom ) {\n\t\treturn;\n\t}\n\n\t// Prevent the default link behavior for non-custom or locked templates\n\tevent.preventDefault();\n\n\t// Update app state with selected template\n\tsetSingleState( 'selectedTemplate', template );\n\n\t// Handle locked templates\n\tif ( isLocked ) {\n\t\tshowLockedTemplateModal( template );\n\t\treturn;\n\t}\n\n\t// Prepare for new template installation\n\tconst { newTemplateForm, newTemplateNameInput, newTemplateDescriptionInput, newTemplateLinkInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst templateDescription = template.querySelector( '.frm-form-templates-item-description' ).textContent.trim();\n\tconst actionName = 'frm_install_template';\n\n\tnewTemplateNameInput.value = templateName;\n\tnewTemplateDescriptionInput.value = templateDescription;\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateLinkInput.value = useTemplateButton.href;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, useTemplateButton );\n};\n\nexport default addUseTemplateButtonEvents;\n","/**\n * Internal dependencies\n */\nimport { setupInitialView, initializeModal } from './ui';\nimport { buildCategorizedTemplates, maybeAddApplicationTemplates } from './templates';\nimport { addEventListeners } from './events';\n\n/**\n * Initializes form templates.\n *\n * @return {void}\n */\nfunction initializeFormTemplates() {\n\tmaybeAddApplicationTemplates();\n\tinitializeModal();\n\tbuildCategorizedTemplates();\n\tsetupInitialView();\n\taddEventListeners();\n}\n\nexport default initializeFormTemplates;\n","export const { canAccessApplicationDashboard, applicationsUrl } = window.frmGlobal;\nexport const { FEATURED_TEMPLATES_KEYS, upgradeLink } = window.frmFormTemplatesVars;\n\nexport const PREFIX = 'frm-form-templates';\n\nexport const VIEW_SLUGS = {\n\tAVAILABLE_TEMPLATES: 'available-templates',\n\tFAVORITES: 'favorites',\n\tCUSTOM: 'custom',\n\tSEARCH: 'search'\n};\n\nexport const PLANS = {\n\tBASIC: 'basic',\n\tPLUS: 'plus',\n\tBUSINESS: 'business',\n\tELITE: 'elite',\n\tRENEW: 'renew',\n\tFREE: 'free'\n};\n\nexport const MODAL_SIZES = {\n\tGENERAL: '440px',\n\tCREATE_TEMPLATE: '550px'\n};\n","export * from './constants';\nexport * from './pageState';\n","/**\n * External dependencies\n */\nimport { getState, getSingleState, setState, setSingleState } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nconst { templatesCount, favoritesCount, customCount } = window.frmFormTemplatesVars;\nconst { availableTemplateItems } = getElements();\nconst availableTemplatesCount = availableTemplateItems.length;\n\nsetState({\n\tavailableTemplatesCount,\n\tcustomCount: Number( customCount ),\n\textraTemplatesCount: templatesCount - availableTemplatesCount,\n\tfavoritesCount,\n\tselectedTemplate: false,\n});\n\nexport { getState, getSingleState, setState, setSingleState };\n","/**\n * Internal dependencies\n */\nimport { addApplicationTemplatesElement, createApplicationTemplates } from '../elements';\nimport { addApplicationTemplateEvents } from '../events';\nimport { canAccessApplicationDashboard } from '../shared';\n\n/**\n * Adds application templates if the user has dashboard access.\n *\n * @return {void}\n */\nexport function maybeAddApplicationTemplates() {\n\t// Exit if the user doesn't have permission to see application dashboard\n\tif ( ! canAccessApplicationDashboard ) {\n\t\treturn;\n\t}\n\n\tconst { doJsonFetch } = frmDom.ajax;\n\n\tdoJsonFetch( 'get_applications_data&view=templates' ).then( setupApplicationTemplates );\n}\n\n/**\n * Sets up application templates by creating HTML elements, injecting them into the DOM,\n * and adding event handlers.\n *\n * @private\n * @param {Object} data The data object containing information for application templates.\n * @return {void}\n */\nfunction setupApplicationTemplates( data ) {\n\t// Create application templates\n\tcreateApplicationTemplates( data.templates );\n\n\t// Inject templates into the DOM\n\taddApplicationTemplatesElement();\n\n\t// Set up event handling\n\taddApplicationTemplateEvents();\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nexport const categorizedTemplates = {};\n\n/**\n * Builds a categorized list of templates.\n *\n * @return {void}\n */\nexport function buildCategorizedTemplates() {\n\tconst { templateItems } = getElements();\n\n\ttemplateItems.forEach( template => {\n\t\t// Extract and split the categories from data attribute\n\t\tconst categories = template.getAttribute( 'data-categories' ).split( ',' );\n\n\t\tcategories.forEach( category => {\n\t\t\t// Initialize the category array if not already done\n\t\t\tif ( ! categorizedTemplates[ category ]) {\n\t\t\t\tcategorizedTemplates[ category ] = [];\n\t\t\t}\n\n\t\t\t// Add the template to the appropriate category\n\t\t\tcategorizedTemplates[ category ].push( template );\n\t\t});\n\t});\n}\n","export * from './categorizeTemplates';\nexport * from './applicationTemplates';\n","export { default as setupInitialView } from './setupInitialView';\nexport * from './initializeModal';\nexport * from './pageTitle';\nexport * from './showHeaderCancelButton';\nexport * from './showSelectedCategory';\nexport * from './searchState';\nexport * from './showEmptyState';\nexport * from './showModal';\n","import { MODAL_SIZES } from '../shared';\n\nlet modalWidget = null;\n\n/**\n * Initialize the modal widget.\n *\n * @return {void}\n */\nexport async function initializeModal() {\n\tconst { initModal, offsetModalY } = window.frmAdminBuild;\n\n\tmodalWidget = initModal( '#frm-form-templates-modal', MODAL_SIZES.GENERAL );\n\n\t// Set the vertical offset for the modal\n\tif ( modalWidget ) {\n\t\toffsetModalY( modalWidget, '103px' );\n\t}\n\n\t// Customize the confirm modal appearance: adjusting its width and vertical position\n\twp.hooks.addAction( 'frmAdmin.beforeOpenConfirmModal', 'frmFormTemplates', ( options ) => {\n\t\tconst { $info: confirmModal } = options;\n\n\t\tconfirmModal.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\t\toffsetModalY( confirmModal, '103px' );\n\t});\n}\n\n/**\n * Retrieve the modal widget.\n *\n * @return {Object|false} The modal widget or false.\n */\nexport function getModalWidget() {\n\treturn modalWidget;\n}\n","/**\n * External dependencies\n */\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\n\n/**\n * Sets the page title based on a given string or the currently selected category.\n *\n * @param {string} [title] Optional title to display.\n * @return {void}\n */\nexport function updatePageTitle( title ) {\n\tconst { pageTitleText } = getElements();\n\n\tconst newTitle =\n\t\ttitle ||\n\t\tgetSingleState( 'selectedCategoryEl' ).querySelector( `.${SKELETON_PREFIX}-cat-text` ).textContent;\n\n\tpageTitleText.textContent = newTitle;\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { frmAnimate, showElements, hideElements, show, hide, isVisible } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\nimport { showSearchEmptyState, updatePageTitle } from '.';\n\n/**\n * Updates the UI to display the search state.\n *\n * @param {boolean} notEmptySearchText True if search input is not empty.\n * @return {void}\n */\nexport function showSearchState( notEmptySearchText ) {\n\tconst { bodyContent, bodyContentChildren, pageTitle, templatesList, applicationTemplates } = getElements();\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\t// Remove highlighting from the currently selected category if the search text is not empty\n\tif ( notEmptySearchText ) {\n\t\tgetSingleState( 'selectedCategoryEl' ).classList.remove( CURRENT_CLASS );\n\t}\n\n\t// Hide non-relevant elements in the body content\n\thideElements( bodyContentChildren );\n\n\t// Update the page title and display relevant elements\n\tupdatePageTitle( __( 'Search Result', 'formidable' ) );\n\tshowElements([ pageTitle, templatesList, applicationTemplates ]);\n\n\t// Smoothly display the updated UI elements\n\tbodyContentAnimate.fadeIn();\n};\n\n/**\n * Displays search results based on search outcome.\n *\n * @param {boolean} foundSomething True if search yielded results.\n * @return {void}\n */\nexport function displaySearchElements( foundSomething ) {\n\t// Show empty state if no templates found\n\tif ( ! foundSomething ) {\n\t\tshowSearchEmptyState();\n\t\treturn;\n\t}\n\n\t// Hide empty state if currently displayed\n\tconst { emptyState } = getElements();\n\tif ( isVisible( emptyState ) ) {\n\t\tconst { pageTitle } = getElements();\n\t\thide( emptyState );\n\t\tshow( pageTitle );\n\t}\n\n\tconst { templatesList, applicationTemplates, applicationTemplatesTitle, applicationTemplatesList } = getElements();\n\n\tshowElements([ templatesList, applicationTemplates, applicationTemplatesTitle ]);\n\n\tif ( templatesList.offsetHeight === 0 ) {\n\t\thideElements([ templatesList, applicationTemplatesTitle ]);\n\t}\n\n\tif ( applicationTemplatesList?.offsetHeight === 0 ) {\n\t\thide( applicationTemplates );\n\t}\n}\n","/**\n * External dependencies\n */\nimport { HIDE_JS_CLASS } from 'core/constants';\nimport { frmAnimate, hasQueryParam, hideElements, show, hide } from 'core/utils';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState } from '../shared';\nimport { showHeaderCancelButton } from './';\n\n/**\n * Sets up the initial view, performing any required\n * DOM manipulations for proper element presentation.\n *\n * @return {void}\n */\nfunction setupInitialView() {\n\tconst {\n\t\tsidebar,\n\t\tsearchInput,\n\t\tbodyContent,\n\t\ttwinFeaturedTemplateItems,\n\t\tavailableTemplatesCategory\n\t} = getElements();\n\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\tsearchInput.value = '';\n\n\t// Hide the twin featured template items\n\thideElements( twinFeaturedTemplateItems );\n\n\t// Set the 'Available Templates' count if it is present\n\tif ( availableTemplatesCategory ) {\n\t\tconst { availableTemplatesCount } = getState();\n\t\tavailableTemplatesCategory.querySelector( `.${SKELETON_PREFIX}-cat-count` ).textContent = availableTemplatesCount;\n\t}\n\n\t// Update extra templates count\n\tconst { extraTemplateCountElements } = getElements();\n\tconst { extraTemplatesCount } = getState();\n\textraTemplateCountElements.forEach( element => element.textContent = extraTemplatesCount );\n\n\t// Smoothly display the updated UI elements\n\tbodyContent.classList.remove( HIDE_JS_CLASS );\n\tsidebar.classList.remove( HIDE_JS_CLASS );\n\tbodyContentAnimate.fadeIn();\n\tshow( sidebar );\n\n\t// Show the \"Cancel\" button in the header if the 'return_page' query param is present\n\tif ( hasQueryParam( 'return_page' ) ) {\n\t\tshowHeaderCancelButton();\n\t}\n}\n\nexport default setupInitialView;\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEW_SLUGS, getState } from '../shared';\n\n/**\n * Display the search-empty state.\n *\n * @return {void}\n */\nexport function showSearchEmptyState() {\n\tconst { notEmptySearchText } = getState();\n\tconst { pageTitle, emptyState, emptyStateButton, applicationTemplates } = getElements();\n\n\t// Toggle visibility and remove attributes based on search status\n\tif ( VIEW_SLUGS.SEARCH === emptyState.dataset?.view ) {\n\t\tif ( notEmptySearchText ) {\n\t\t\tshow( emptyState );\n\t\t\thideElements([ pageTitle, applicationTemplates ]);\n\t\t} else {\n\t\t\thide( emptyState );\n\t\t\temptyState.removeAttribute( 'data-view' );\n\t\t}\n\n\t\treturn;\n\t}\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.SEARCH );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No templates found', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'Sorry, we didn\\'t find any templates that match your criteria.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Start from Scratch', 'formidable' );\n\n\t// Display the empty state\n\thideElements([ pageTitle, applicationTemplates ]);\n\tshowElements([ emptyState, emptyStateButton ]);\n};\n\n/**\n * Display the favorites-empty state.\n *\n * @return {void}\n */\nexport function showFavoritesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.FAVORITES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No favorites', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t added any templates to your favorites yet.',\n\t\t'formidable'\n\t);\n\n\t// Display the empty state\n\thideElements([ pageTitle, emptyStateButton ]);\n\tshow( emptyState );\n};\n\n/**\n * Display the custom-empty state.\n *\n * @return {void}\n */\nexport function showCustomTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.CUSTOM );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'You currently have no templates.', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t created any form templates. Begin now to simplify your workflow and save time.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Create Template', 'formidable' );\n\n\t// Display the empty state\n\thide( pageTitle );\n\tshowElements([ emptyState, emptyStateButton ]);\n};\n\n/**\n * Display the available-templates-empty state.\n *\n * @return {void}\n */\nexport function showAvailableTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.AVAILABLE_TEMPLATES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\tconst { extraTemplatesCount } = getState();\n\temptyStateTitle.textContent = __( 'No Templates Available', 'formidable' );\n\temptyStateText.textContent = sprintf(\n\t\t__( 'Upgrade to PRO for %s+ options or explore Free Templates.', 'formidable' ),\n\t\textraTemplatesCount\n\t);\n\n\t// Display the empty state\n\thideElements([ pageTitle, emptyStateButton ]);\n\tshow( emptyState );\n};\n","/**\n * External dependencies\n */\nimport { frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Display the \"Cancel\" button in the header.\n *\n * @return {void}\n */\nexport function showHeaderCancelButton() {\n\tconst { headerCancelButton } = getElements();\n\tnew frmAnimate( headerCancelButton ).fadeIn();\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { hideElements, show } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { MODAL_SIZES, PLANS, upgradeLink } from '../shared';\nimport { getModalWidget } from './';\n\n/**\n * Display the locked template modal.\n *\n * @param {HTMLElement} template The template element.\n * @return {void}\n */\nexport function showLockedTemplateModal( template ) {\n\tconst plan = template.dataset.requiredPlan;\n\n\tswitch ( plan ) {\n\t\tcase PLANS.BASIC:\n\t\tcase PLANS.PLUS:\n\t\tcase PLANS.BUSINESS:\n\t\tcase PLANS.ELITE:\n\t\t\tshowUpgradeModal( plan, template );\n\t\t\tbreak;\n\t\tcase PLANS.RENEW:\n\t\t\tshowRenewAccountModal();\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Base function to show a modal dialog with a customizable pre-open execution step.\n *\n * @param {Function} executePreOpen The function to be executed before opening the modal dialog.\n * @return {Function} A higher-order function that can be invoked to display the modal dialog.\n */\nconst showModal = executePreOpen => async( ...params ) => {\n\tconst dialogWidget = getModalWidget();\n\tif ( ! dialogWidget ) {\n\t\treturn;\n\t}\n\n\tconst { modalItems } = getElements();\n\thideElements( modalItems );\n\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.GENERAL );\n\tawait executePreOpen?.( ...params );\n\tdialogWidget.dialog( 'open' );\n};\n\n// Mapping each plan to the subsequent plans it can upgrade to\nconst upgradablePlans = {\n\tbasic: [ 'basic', 'plus', 'business', 'elite' ],\n\tplus: [ 'plus', 'business', 'elite' ],\n\tbusiness: [ 'business', 'elite' ],\n\telite: [ 'elite' ]\n};\n\n/**\n * Display the modal dialog to prompt the user to upgrade their account.\n *\n * @param {string} plan Current plan name\n * @param {HTMLElement} template The template element\n * @return {void}\n */\nexport const showUpgradeModal = showModal( ( plan, template ) => {\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst { upgradeModal, upgradeModalTemplateNames, upgradeModalPlansIcons, upgradeModalLink } = getElements();\n\n\t// Update template names\n\tupgradeModalTemplateNames.forEach( element => element.textContent = templateName );\n\n\t// Update plan icons and their availability\n\tupgradeModalPlansIcons.forEach( icon => {\n\t\tconst planType = icon.dataset.plan;\n\t\tconst shouldDisplayCheck = upgradablePlans[plan].includes( planType );\n\n\t\t// Toggle icon class based on plan availability\n\t\ticon.classList.toggle( 'frm_green', shouldDisplayCheck );\n\n\t\t// Update SVG icon\n\t\tconst svg = icon.querySelector( 'svg > use' );\n\t\tsvg.setAttribute( 'xlink:href', shouldDisplayCheck ? '#frm_checkmark_icon' : '#frm_close_icon' );\n\t});\n\n\t// Append template slug to the upgrade modal link URL\n\tconst templateSlug = template.dataset.slug ? `-${template.dataset.slug}` : '';\n\tupgradeModalLink.href = upgradeLink + templateSlug;\n\n\tshow( upgradeModal );\n});\n\n/**\n * Display the modal dialog to prompt the user to renew their account.\n *\n * @return {void}\n */\nexport const showRenewAccountModal = showModal( () => {\n\tconst { renewAccountModal } = getElements();\n\tshow( renewAccountModal );\n});\n\n/**\n * Displays a modal dialog prompting the user to create a new template.\n *\n * @return {void}\n */\nexport const showCreateTemplateModal = showModal( () => {\n\tconst dialogWidget = getModalWidget();\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\n\tconst { createTemplateModal } = getElements();\n\tshow( createTemplateModal );\n});\n","/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, VIEW_SLUGS, getState } from '../shared';\nimport { isFavoriteTemplate } from '../utils';\nimport { categorizedTemplates } from '../templates';\nimport { updatePageTitle, showFavoritesEmptyState, showCustomTemplatesEmptyState, showAvailableTemplatesEmptyState } from './';\n\n/**\n * Show templates based on selected category.\n *\n * @param {string} selectedCategory The selected category to display templates for.\n * @return {void}\n */\nexport function showSelectedCategory( selectedCategory ) {\n\tconst { bodyContentChildren, pageTitle, showCreateTemplateModalButton, templatesList, templateItems } = getElements();\n\n\tif ( SKELETON_VIEWS.ALL_ITEMS !== selectedCategory ) {\n\t\thideElements( bodyContentChildren );\n\t}\n\n\tupdatePageTitle();\n\thide( showCreateTemplateModalButton );\n\tshow( pageTitle );\n\n\tswitch ( selectedCategory ) {\n\t\tcase SKELETON_VIEWS.ALL_ITEMS:\n\t\t\tshowAllTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.AVAILABLE_TEMPLATES:\n\t\t\tshowAvailableTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.FAVORITES:\n\t\t\tshowFavoriteTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.CUSTOM:\n\t\t\tshowCustomTemplates();\n\t\t\tbreak;\n\t\tdefault:\n\t\t\thideElements( templateItems ); // Clear the view for new content\n\t\t\tshowElements([ templatesList, ...categorizedTemplates[ selectedCategory ] ]);\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Shows all templates when 'All Templates' is the selected category.\n *\n * @return {void}\n */\nexport function showAllTemplates() {\n\tconst {\n\t\tbodyContentChildren,\n\t\tpageTitleDivider,\n\t\ttemplateItems,\n\t\ttwinFeaturedTemplateItems,\n\t\tcustomTemplatesSection,\n\t\temptyState,\n\t\tapplicationTemplates\n\t} = getElements();\n\n\tshowElements([ ...bodyContentChildren, ...templateItems ]);\n\thideElements([ pageTitleDivider, ...twinFeaturedTemplateItems, customTemplatesSection, emptyState, applicationTemplates ]);\n}\n\n/**\n * Shows favorite templates.\n *\n * @return {void}\n */\nexport function showFavoriteTemplates() {\n\tconst { favoritesCount } = getState();\n\n\tif ( 0 === favoritesCount.total ) {\n\t\tshowFavoritesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tbodyContent,\n\t\ttemplatesList,\n\t\ttemplateItems,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplatesList,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\t// Clear the view for new content\n\thideElements( templateItems );\n\n\tconst elementsToShow = [];\n\n\t// Get all favorite items from the DOM and add the elements to show\n\tconst favoriteItems = bodyContent.querySelectorAll( `.${PREFIX}-favorite-item` );\n\telementsToShow.push( ...favoriteItems );\n\n\t// Add default favorites if available\n\tif ( favoritesCount.default > 0 ) {\n\t\telementsToShow.push( templatesList );\n\t}\n\n\t// Add custom favorites if available\n\tif ( favoritesCount.custom > 0 ) {\n\t\tconst nonFavCustomTemplates = Array.from( customTemplateItems ).filter(\n\t\t\ttemplate => ! isFavoriteTemplate( template )\n\t\t);\n\n\t\thideElements( nonFavCustomTemplates );\n\t\telementsToShow.push( customTemplatesSection );\n\t\telementsToShow.push( customTemplatesList );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t} else {\n\t\t\telementsToShow.push( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Show elements that were selected to be shown\n\tshowElements( elementsToShow );\n}\n\n/**\n * Shows custom templates.\n *\n * @return {void}\n */\nexport function showCustomTemplates() {\n\tconst { customCount } = getState();\n\n\tif ( 0 === customCount ) {\n\t\tshowCustomTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tshowCreateTemplateModalButton,\n\t\tpageTitleDivider,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesList,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\thide( customTemplatesTitle );\n\tshowElements([ showCreateTemplateModalButton, pageTitleDivider, customTemplatesSection, customTemplatesList, ...customTemplateItems ]);\n}\n\n/**\n * Shows available templates.\n *\n * @return {void}\n */\nexport function showAvailableTemplates() {\n\tconst { availableTemplatesCount } = getState();\n\n\tif ( 0 === availableTemplatesCount ) {\n\t\tshowAvailableTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst { templatesList, templateItems, availableTemplateItems } = getElements();\n\n\thideElements( templateItems ); // Clear the view for new content\n\tshowElements([ templatesList, ...availableTemplateItems ]);\n}\n\nexport default showSelectedCategory;\n","export * from './validation';\n","/**\n * External dependencies\n */\nimport { isHTMLElement } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS, FEATURED_TEMPLATES_KEYS } from '../shared';\n\n/**\n * Checks if the category is \"All Templates\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"All Templates\", otherwise false.\n */\nexport const isAllTemplatesCategory = category => SKELETON_VIEWS.ALL_ITEMS === category;\n\n/**\n * Checks if the category is \"Favorites\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Favorites\", otherwise false.\n */\nexport const isFavoritesCategory = category => VIEW_SLUGS.FAVORITES === category;\n\n/**\n * Checks if the category is \"Custom\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Custom\", otherwise false.\n */\nexport const isCustomCategory = category => VIEW_SLUGS.CUSTOM === category;\n\n/**\n * Checks if a template is a favorite.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is a favorite, otherwise false.\n */\nexport const isFavoriteTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${PREFIX}-favorite-item` ) : false;\n\n/**\n * Checks if a template is custom.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is custom, otherwise false.\n */\nexport const isCustomTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${PREFIX}-custom-item` ) : false;\n\n/**\n * Checks if a template is featured.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is featured, otherwise false.\n */\nexport const isFeaturedTemplate = template =>\n\tisHTMLElement( template ) ? FEATURED_TEMPLATES_KEYS.includes( Number( template.dataset.id ) ) : false;\n\n/**\n * Checks if a template is locked.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is locked, otherwise false.\n */\nexport const isLockedTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${PREFIX}-locked-item` ) : false;\n","/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>} args Function arguments for cache\n * entry.\n * @property {*} val Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F} fn Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( process.env.NODE_ENV === 'test' ) {\n\t\t// Cache is not exposed in the public API, but used in tests to ensure\n\t\t// expected list progression\n\t\tmemoized.getCache = function() {\n\t\t\treturn [ head, tail, size ];\n\t\t};\n\t}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n","/* global window, exports, define */\n\n!function() {\n 'use strict'\n\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n }\n\n function sprintf(key) {\n // `arguments` is not an array, but should be fine for this call\n return sprintf_format(sprintf_parse(key), arguments)\n }\n\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []))\n }\n\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === 'string') {\n output += parse_tree[i]\n }\n else if (typeof parse_tree[i] === 'object') {\n ph = parse_tree[i] // convenience purposes only\n if (ph.keys) { // keyword argument\n arg = argv[cursor]\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == undefined) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n }\n arg = arg[ph.keys[k]]\n }\n }\n else if (ph.param_no) { // positional argument (explicit)\n arg = argv[ph.param_no]\n }\n else { // positional argument (implicit)\n arg = argv[cursor++]\n }\n\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg()\n }\n\n if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n }\n\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt]\n }\n\n var _fmt = fmt, match, parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0])\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n )\n }\n else {\n throw new SyntaxError('[sprintf] unexpected placeholder')\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return sprintf_cache[fmt] = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports['sprintf'] = sprintf\n exports['vsprintf'] = vsprintf\n }\n if (typeof window !== 'undefined') {\n window['sprintf'] = sprintf\n window['vsprintf'] = vsprintf\n\n if (typeof define === 'function' && define['amd']) {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n","import pluralForms from '@tannin/plural-forms';\n\n/**\n * Tannin constructor options.\n *\n * @typedef {Object} TanninOptions\n *\n * @property {string} [contextDelimiter] Joiner in string lookup with context.\n * @property {Function} [onMissingKey] Callback to invoke when key missing.\n */\n\n/**\n * Domain metadata.\n *\n * @typedef {Object} TanninDomainMetadata\n *\n * @property {string} [domain] Domain name.\n * @property {string} [lang] Language code.\n * @property {(string|Function)} [plural_forms] Plural forms expression or\n * function evaluator.\n */\n\n/**\n * Domain translation pair respectively representing the singular and plural\n * translation.\n *\n * @typedef {[string,string]} TanninTranslation\n */\n\n/**\n * Locale data domain. The key is used as reference for lookup, the value an\n * array of two string entries respectively representing the singular and plural\n * translation.\n *\n * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain\n */\n\n/**\n * Jed-formatted locale data.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData\n */\n\n/**\n * Default Tannin constructor options.\n *\n * @type {TanninOptions}\n */\nvar DEFAULT_OPTIONS = {\n\tcontextDelimiter: '\\u0004',\n\tonMissingKey: null,\n};\n\n/**\n * Given a specific locale data's config `plural_forms` value, returns the\n * expression.\n *\n * @example\n *\n * ```\n * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)'\n * ```\n *\n * @param {string} pf Locale data plural forms.\n *\n * @return {string} Plural forms expression.\n */\nfunction getPluralExpression( pf ) {\n\tvar parts, i, part;\n\n\tparts = pf.split( ';' );\n\n\tfor ( i = 0; i < parts.length; i++ ) {\n\t\tpart = parts[ i ].trim();\n\t\tif ( part.indexOf( 'plural=' ) === 0 ) {\n\t\t\treturn part.substr( 7 );\n\t\t}\n\t}\n}\n\n/**\n * Tannin constructor.\n *\n * @class\n *\n * @param {TanninLocaleData} data Jed-formatted locale data.\n * @param {TanninOptions} [options] Tannin options.\n */\nexport default function Tannin( data, options ) {\n\tvar key;\n\n\t/**\n\t * Jed-formatted locale data.\n\t *\n\t * @name Tannin#data\n\t * @type {TanninLocaleData}\n\t */\n\tthis.data = data;\n\n\t/**\n\t * Plural forms function cache, keyed by plural forms string.\n\t *\n\t * @name Tannin#pluralForms\n\t * @type {Object}\n\t */\n\tthis.pluralForms = {};\n\n\t/**\n\t * Effective options for instance, including defaults.\n\t *\n\t * @name Tannin#options\n\t * @type {TanninOptions}\n\t */\n\tthis.options = {};\n\n\tfor ( key in DEFAULT_OPTIONS ) {\n\t\tthis.options[ key ] = options !== undefined && key in options\n\t\t\t? options[ key ]\n\t\t\t: DEFAULT_OPTIONS[ key ];\n\t}\n}\n\n/**\n * Returns the plural form index for the given domain and value.\n *\n * @param {string} domain Domain on which to calculate plural form.\n * @param {number} n Value for which plural form is to be calculated.\n *\n * @return {number} Plural form index.\n */\nTannin.prototype.getPluralForm = function( domain, n ) {\n\tvar getPluralForm = this.pluralForms[ domain ],\n\t\tconfig, plural, pf;\n\n\tif ( ! getPluralForm ) {\n\t\tconfig = this.data[ domain ][ '' ];\n\n\t\tpf = (\n\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t// @ts-ignore\n\t\t\tconfig.plural_forms\n\t\t);\n\n\t\tif ( typeof pf !== 'function' ) {\n\t\t\tplural = getPluralExpression(\n\t\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t\t// @ts-ignore\n\t\t\t\tconfig.plural_forms\n\t\t\t);\n\n\t\t\tpf = pluralForms( plural );\n\t\t}\n\n\t\tgetPluralForm = this.pluralForms[ domain ] = pf;\n\t}\n\n\treturn getPluralForm( n );\n};\n\n/**\n * Translate a string.\n *\n * @param {string} domain Translation domain.\n * @param {string|void} context Context distinguishing terms of the same name.\n * @param {string} singular Primary key for translation lookup.\n * @param {string=} plural Fallback value used for non-zero plural\n * form index.\n * @param {number=} n Value to use in calculating plural form.\n *\n * @return {string} Translated string.\n */\nTannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) {\n\tvar index, key, entry;\n\n\tif ( n === undefined ) {\n\t\t// Default to singular.\n\t\tindex = 0;\n\t} else {\n\t\t// Find index by evaluating plural form for value.\n\t\tindex = this.getPluralForm( domain, n );\n\t}\n\n\tkey = singular;\n\n\t// If provided, context is prepended to key with delimiter.\n\tif ( context ) {\n\t\tkey = context + this.options.contextDelimiter + singular;\n\t}\n\n\tentry = this.data[ domain ][ key ];\n\n\t// Verify not only that entry exists, but that the intended index is within\n\t// range and non-empty.\n\tif ( entry && entry[ index ] ) {\n\t\treturn entry[ index ];\n\t}\n\n\tif ( this.options.onMissingKey ) {\n\t\tthis.options.onMissingKey( singular, domain );\n\t}\n\n\t// If entry not found, fall back to singular vs. plural with zero index\n\t// representing the singular value.\n\treturn index === 0 ? singular : plural;\n};\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * WordPress dependencies\n */\nimport domReady from '@wordpress/dom-ready';\n\n/**\n * Internal dependencies\n */\nimport { getState, setState } from './shared';\nimport initializeFormTemplates from './initializeFormTemplates';\n\ndomReady( () => {\n\t/**\n\t * Entry point for pre-initialization adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.beforeInitialize', {\n\t\tgetState,\n\t\tsetState\n\t});\n\n\t// Initialize the form templates\n\tinitializeFormTemplates();\n\n\t/**\n\t * Entry point for post-initialization custom logic or adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.afterInitialize', {\n\t\tgetState,\n\t\tsetState\n\t});\n\n\t/**\n\t * Trigger a specific action to interact with the hidden form '#frm-new-template',\n\t * which is used for creating or using a form template.\n\t *\n\t * @param {jQuery} $form The jQuery object containing the hidden form element.\n\t */\n\twp.hooks.doAction( 'frm_new_form_modal_form', jQuery( '#frm-new-template' ) );\n});\n"],"names":["_window$frmGlobal","window","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","createPageElements","initialElements","arguments","length","undefined","_typeof","Error","elements","getElements","addElements","newElements","_objectSpread","createPageState","initialState","state","getState","getSingleState","propertyName","value","Reflect","get","setState","newState","setSingleState","has","set","PREFIX","SEARCH_RESULT_ITEM","VIEWS","ALL_ITEMS","createEmptyStateElement","getEmptyStateElements","bodyContent","document","getElementById","sidebar","concat","emptyState","appendChild","emptyStateElements","_createPageElements","searchInput","querySelector","categoryItems","querySelectorAll","allItemsCategory","__","_window$frmDom","frmDom","tag","div","a","img","button","className","setAttribute","id","children","src","alt","emptyStateTitle","emptyStateText","emptyStateButton","onClickPreventDefault","frmAnimate","resetSearchInput","addCategoryEvents","_getElements","forEach","category","onCategoryClick","addEventListener","onCategoryKeydown","event","clickedCategory","currentTarget","newSelectedCategory","getAttribute","_getState","selectedCategory","selectedCategoryEl","notEmptySearchText","wp","hooks","applyFilters","classList","remove","add","doAction","_getElements2","fadeIn","key","preventDefault","dispatchEvent","Event","bubbles","_createPageState","type","_classCallCheck","prepareElements","_createClass","_this","applyStyleToElements","element","resetOpacity","once","cascadeFadeIn","_this2","delay","setTimeout","index","style","transitionDelay","_this3","opacity","callback","Element","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","console","warn","span","textContent","util","URL","location","href","urlParams","searchParams","getQueryParam","paramName","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","includes","_defineProperty","history","hasQueryParam","isValidEmail","email","test","isHTMLElement","HTMLElement","isEmptyObject","obj","Object","keys","constructor","showElements","_Array$from","Array","from","hideElements","_Array$from2","isVisible","styles","getComputedStyle","getPropertyValue","SKELETON_PREFIX","applicationsUrl","applicationTemplates","thumbnailBaseURL","createApplicationTemplates","applications","templateItems","map","template","createTemplateItem","text","name","hasLiteThumbnail","isWebp","thumbnailURL","data","toLowerCase","child","addApplicationTemplatesElement","applicationTemplatesTitle","applicationTemplatesList","applicationTemplateItems","VIEW_SLUGS","templatesList","customTemplatesSection","favoritesCategory","FAVORITES","modal","headerCancelButton","_document$getElementB","createFormButton","pageTitle","pageTitleText","pageTitleDivider","upsellBanner","extraTemplateCountElements","availableTemplateItems","twinFeaturedTemplateItems","featuredTemplatesList","customTemplateItems","customTemplatesTitle","customTemplatesList","favoritesCategoryCountEl","availableTemplatesCategory","AVAILABLE_TEMPLATES","modalItems","showCreateTemplateModalButton","createTemplateModal","createTemplateFormsDropdown","createTemplateName","createTemplateDescription","createTemplateButton","renewAccountModal","upgradeModal","upgradeModalTemplateNames","upgradeModalPlansIcons","upgradeModalLink","newTemplateForm","newTemplateNameInput","newTemplateDescriptionInput","newTemplateLinkInput","newTemplateActionInput","bodyContentChildren","addApplicationTemplateEvents","onApplicationTemplateClick","target","closest","applicationTemplate","dataset","addCreateFormButtonEvents","onCreateFormButtonClick","installNewForm","frmAdminBuild","showCreateTemplateModal","isCustomCategory","addCreateTemplateEvents","onShowCreateTemplateModalButtonClick","onFormsSelectChange","onCreateTemplateButtonClick","formsSelect","formId","toggleDisableModalElements","selectedOption","options","selectedIndex","formDescription","description","trim","formName","templateString","endsWith","_getElements3","shouldDisable","_getElements4","disabled","toggle","actionName","_getElements5","showFavoritesEmptyState","isFavoriteTemplate","isCustomTemplate","isFeaturedTemplate","isFavoritesCategory","FAVORITE_BUTTON_CLASS","HEART_ICON_SELECTOR","FILLED_HEART_ICON","LINEAR_HEART_ICON","OPERATION","ADD","REMOVE","addFavoriteButtonEvents","favoriteButtons","favoriteButton","onFavoriteButtonClick","_twinFeaturedTemplate","templateId","isFavorited","isTemplateCustom","isTemplateFeatured","twinFeaturedTemplate","templateList","favoritesCount","currentOperation","heartIcon","twinTemplateHeartIcon","total","custom","default","updateFavoriteTemplate","operation","isCustom","formData","FormData","doJsonPost","ajax","append","addUseTemplateButtonEvents","addSearchEvents","showSelectedCategory","addEventListeners","addAction","showSearchState","displaySearchElements","initSearch","init","handleSearchResult","onEmptyStateButtonClick","_ref","foundSomething","_emptyState$dataset","SEARCH","view","focus","showLockedTemplateModal","isLockedTemplate","useTemplateButtons","useTemplateButton","onUseTemplateButtonClick","isLocked","templateName","templateDescription","setupInitialView","initializeModal","buildCategorizedTemplates","maybeAddApplicationTemplates","initializeFormTemplates","canAccessApplicationDashboard","_window$frmFormTempla","frmFormTemplatesVars","FEATURED_TEMPLATES_KEYS","upgradeLink","CUSTOM","PLANS","BASIC","PLUS","BUSINESS","ELITE","RENEW","FREE","MODAL_SIZES","GENERAL","CREATE_TEMPLATE","templatesCount","customCount","availableTemplatesCount","Number","extraTemplatesCount","selectedTemplate","doJsonFetch","setupApplicationTemplates","templates","categorizedTemplates","categories","split","push","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","apply","_next","_throw","modalWidget","_initializeModal","_callee","_window$frmAdminBuild","initModal","offsetModalY","_callee$","_context","confirmModal","$info","dialog","getModalWidget","updatePageTitle","title","newTitle","showSearchEmptyState","bodyContentAnimate","offsetHeight","showHeaderCancelButton","_getState2","sprintf","removeAttribute","showCustomTemplatesEmptyState","_getElements6","showAvailableTemplatesEmptyState","_getElements7","_getElements8","plan","requiredPlan","showUpgradeModal","showRenewAccountModal","showModal","executePreOpen","dialogWidget","_len","params","_key","_args","upgradablePlans","basic","plus","business","elite","icon","planType","shouldDisplayCheck","svg","templateSlug","slug","SKELETON_VIEWS","showAllTemplates","showAvailableTemplates","showFavoriteTemplates","showCustomTemplates","_toConsumableArray","elementsToShow","favoriteItems","nonFavCustomTemplates","filter","_getState3","isAllTemplatesCategory","contains","domReady","jQuery"],"sourceRoot":""} +======= +{"version":3,"file":"form-templates.js","mappings":";;;;;;;;;;;;;;;;AAAsC;AACE;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,aAAa,oBAAoB,MAAM;AACnD;AACe;AACf,aAAa,2DAAO;;AAEpB;AACA,SAAS,4DAAQ;AACjB;AACA;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB;AACA,YAAY,GAAG;AACf;AACe;AACf;AACA;;AAEA,cAAc,oBAAoB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AC7GsC;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf,gBAAgB,2DAAO;;AAEvB;AACA,sBAAsB,OAAO;AAC7B;AACA;;;;;;;;;;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;AC3HA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY;AACZ;AACe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;;;;;;;;;;;;;;;;AC5CA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC;;AAEA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,SAAS,iEAAiB;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,QAAQ;;AAEzB;;AAEA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,kBAAkB;AAClB;;;AAGA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iEAAe,iBAAiB,EAAC;AACjC;;;;;;;;;;;;;;;;ACpBA;AACA;AACA;AACqD;AACrD;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA,iEAAe,eAAe,EAAC;AAC/B;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;ACrCwE;;AAExE;AACA;AACA;AAC4C;AACM;AACN;AACA;AACQ;AACJ;AACJ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,EAAE,qFAAe;;AAEjB,aAAa,mBAAmB;AAChC;AACA;AACA,aAAa,mBAAmB;;AAEhC;AACA;AACA,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,sBAAsB,6DAAgB;AACtC,sBAAsB,6DAAgB;AACtC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,0BAA0B,6DAAgB;AAC1C,0BAA0B,6DAAgB;AAC1C,kBAAkB,0DAAa;AAC/B,sBAAsB,0DAAa;AACnC,uBAAuB,8DAAiB;AACxC,uBAAuB,8DAAiB;AACxC,qBAAqB,4DAAe;AACpC,qBAAqB,4DAAe;AACpC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC;AACA,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;AAC3B;;;;;;;;;;;;;;;;;AC5DA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA;AACA,YAAY,YAAY;AACxB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,uBAAuB,iEAAiB;AACxC;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;;AC3F8E;;AAE9E;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA,YAAY,kDAAkD;AAC9D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;;AAElD,QAAQ,IAAqC;AAC7C;AACA;AACA,sCAAsC,wFAAkB;AACxD;AACA;;AAEA,2FAA2F,aAAa;AACxG;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvEA;AACA;AACA;AACwC;AACxC,cAAc,uBAAuB;;AAErC;AACA;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;;AAEA;AACA,aAAa,wBAAwB,uBAAuB;AAC5D;;AAEA;AACA,aAAa,uBAAuB;AACpC;;AAEA;AACA,aAAa,+BAA+B;AAC5C;;AAEO,mBAAmB,wDAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2P;AAC3P;;;;;;;;;;;;;;;ACzDA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;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AAG,KAAK;AAAA;;;;;;;;;;ACrE7F;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C;AACA,cAAc,4BAA4B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,2BAA2B,eAAe;AAC1C,qBAAqB,iBAAiB;AACtC,cAAc,iBAAiB;AAC/B,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,KAA+B,GAAG,EAMtC;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACtKA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,IAA8B;AACtC,QAAQ,eAAkB;AAC1B,QAAQ,gBAAmB;AAC3B;AACA;AACA;AACA;;AAEA,YAAY,IAA6C;AACzD,YAAY,mCAAO;AACnB;AACA;AACA;AACA;AACA,aAAa;AAAA,kGAAC;AACd;AACA;AACA;AACA,CAAC,IAAI;;;;;;;;;;;;;;;;;ACtO0C;;AAE/C;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,gGAAgG;AAC9G;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,qCAAqC;AACnD;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA,qBAAqB;;AAErB,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,kBAAkB;AAC7B;AACe;AACf;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,gEAAW;AACnB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB;AACA,WAAW,aAAa;AACxB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpNA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;;ACJqD;AACrD;AACA,+BAA+B,gEAAgB;AAC/C;;;;;;;;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACFuD;AACJ;AACsB;AAClB;AACvD;AACA,SAAS,iEAAiB,OAAO,+DAAe,OAAO,0EAA0B,OAAO,iEAAiB;AACzG;;;;;;;;;;;;;;;;;ACNqD;AACrD;AACA;AACA,qCAAqC,gEAAgB;AACrD,cAAc;AACd,+LAA+L,gEAAgB;AAC/M;AACA;;;;;;;;;;;;;;;;;ACP+C;AAC/C;AACA,cAAc,6DAAa;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACRkC;AAClC;AACA,kBAAkB,sDAAO;AACzB;AACA;AACA;AACA,oBAAoB,sDAAO;AAC3B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVkC;AACS;AAC3C;AACA,UAAU,2DAAW;AACrB,qBAAqB,sDAAO;AAC5B;;;;;;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;;;;;;;UCRA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACNA;AACA;AACA;AAC4C;;AAE5C;AACA;AACA;AAC8C;AACkB;AAEhEsf,gEAAQ,CAAE,YAAM;EACf;AACD;AACA;AACA;AACA;EACC9b,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,mCAAmC,EAAE;IACvDzE,QAAQ,EAARA,6CAAQ;IACRM,QAAQ,EAARA,6CAAQA;EACT,CAAE,CAAC;;EAEH;EACAiU,oEAAuB,CAAC,CAAC;;EAEzB;AACD;AACA;AACA;AACA;EACCpQ,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,kCAAkC,EAAE;IACtDzE,QAAQ,EAARA,6CAAQ;IACRM,QAAQ,EAARA,6CAAQA;EACT,CAAE,CAAC;;EAEH;AACD;AACA;AACA;AACA;AACA;EACC6D,EAAE,CAACC,KAAK,CAACK,QAAQ,CAAE,yBAAyB,EAAEyb,MAAM,CAAE,mBAAoB,CAAE,CAAC;AAC9E,CAAE,CAAC,C","sources":["webpack://formidable/./node_modules/@tannin/compile/index.js","webpack://formidable/./node_modules/@tannin/evaluate/index.js","webpack://formidable/./node_modules/@tannin/plural-forms/index.js","webpack://formidable/./node_modules/@tannin/postfix/index.js","webpack://formidable/./node_modules/@wordpress/dom-ready/build-module/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createAddHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createCurrentHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDidHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDoingHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHasHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHooks.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRemoveHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRunHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateHookName.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateNamespace.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/create-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/default-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/index.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/sprintf.js","webpack://formidable/./js/src/core/constants.js","webpack://formidable/./js/src/core/factory/createPageElements.js","webpack://formidable/./js/src/core/factory/createPageState.js","webpack://formidable/./js/src/core/factory/index.js","webpack://formidable/./js/src/core/page-skeleton/constants.js","webpack://formidable/./js/src/core/page-skeleton/elements/elements.js","webpack://formidable/./js/src/core/page-skeleton/elements/emptyStateElement.js","webpack://formidable/./js/src/core/page-skeleton/elements/index.js","webpack://formidable/./js/src/core/page-skeleton/events/categoryListener.js","webpack://formidable/./js/src/core/page-skeleton/events/index.js","webpack://formidable/./js/src/core/page-skeleton/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/index.js","webpack://formidable/./js/src/core/page-skeleton/shared/pageState.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.js","webpack://formidable/./js/src/form-templates/elements/applicationTemplatesElement.js","webpack://formidable/./js/src/form-templates/elements/elements.js","webpack://formidable/./js/src/form-templates/elements/index.js","webpack://formidable/./js/src/form-templates/events/applicationTemplateListener.js","webpack://formidable/./js/src/form-templates/events/createFormButtonListener.js","webpack://formidable/./js/src/form-templates/events/createTemplateListeners.js","webpack://formidable/./js/src/form-templates/events/favoriteButtonListener.js","webpack://formidable/./js/src/form-templates/events/index.js","webpack://formidable/./js/src/form-templates/events/searchListener.js","webpack://formidable/./js/src/form-templates/events/useTemplateButtonListener.js","webpack://formidable/./js/src/form-templates/initializeFormTemplates.js","webpack://formidable/./js/src/form-templates/shared/constants.js","webpack://formidable/./js/src/form-templates/shared/index.js","webpack://formidable/./js/src/form-templates/shared/pageState.js","webpack://formidable/./js/src/form-templates/templates/applicationTemplates.js","webpack://formidable/./js/src/form-templates/templates/categorizeTemplates.js","webpack://formidable/./js/src/form-templates/templates/index.js","webpack://formidable/./js/src/form-templates/ui/index.js","webpack://formidable/./js/src/form-templates/ui/initializeModal.js","webpack://formidable/./js/src/form-templates/ui/pageTitle.js","webpack://formidable/./js/src/form-templates/ui/searchState.js","webpack://formidable/./js/src/form-templates/ui/setupInitialView.js","webpack://formidable/./js/src/form-templates/ui/showEmptyState.js","webpack://formidable/./js/src/form-templates/ui/showHeaderCancelButton.js","webpack://formidable/./js/src/form-templates/ui/showModal.js","webpack://formidable/./js/src/form-templates/ui/showSelectedCategory.js","webpack://formidable/./js/src/form-templates/utils/index.js","webpack://formidable/./js/src/form-templates/utils/validation.js","webpack://formidable/./node_modules/memize/index.js","webpack://formidable/./node_modules/sprintf-js/src/sprintf.js","webpack://formidable/./node_modules/tannin/index.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://formidable/webpack/bootstrap","webpack://formidable/webpack/runtime/compat get default export","webpack://formidable/webpack/runtime/define property getters","webpack://formidable/webpack/runtime/hasOwnProperty shorthand","webpack://formidable/webpack/runtime/make namespace object","webpack://formidable/./js/src/form-templates/index.js"],"sourcesContent":["import postfix from '@tannin/postfix';\nimport evaluate from '@tannin/evaluate';\n\n/**\n * Given a C expression, returns a function which can be called to evaluate its\n * result.\n *\n * @example\n *\n * ```js\n * import compile from '@tannin/compile';\n *\n * const evaluate = compile( 'n > 1' );\n *\n * evaluate( { n: 2 } );\n * // ⇒ true\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator.\n */\nexport default function compile( expression ) {\n\tvar terms = postfix( expression );\n\n\treturn function( variables ) {\n\t\treturn evaluate( terms, variables );\n\t};\n}\n","/**\n * Operator callback functions.\n *\n * @type {Object}\n */\nvar OPERATORS = {\n\t'!': function( a ) {\n\t\treturn ! a;\n\t},\n\t'*': function( a, b ) {\n\t\treturn a * b;\n\t},\n\t'/': function( a, b ) {\n\t\treturn a / b;\n\t},\n\t'%': function( a, b ) {\n\t\treturn a % b;\n\t},\n\t'+': function( a, b ) {\n\t\treturn a + b;\n\t},\n\t'-': function( a, b ) {\n\t\treturn a - b;\n\t},\n\t'<': function( a, b ) {\n\t\treturn a < b;\n\t},\n\t'<=': function( a, b ) {\n\t\treturn a <= b;\n\t},\n\t'>': function( a, b ) {\n\t\treturn a > b;\n\t},\n\t'>=': function( a, b ) {\n\t\treturn a >= b;\n\t},\n\t'==': function( a, b ) {\n\t\treturn a === b;\n\t},\n\t'!=': function( a, b ) {\n\t\treturn a !== b;\n\t},\n\t'&&': function( a, b ) {\n\t\treturn a && b;\n\t},\n\t'||': function( a, b ) {\n\t\treturn a || b;\n\t},\n\t'?:': function( a, b, c ) {\n\t\tif ( a ) {\n\t\t\tthrow b;\n\t\t}\n\n\t\treturn c;\n\t},\n};\n\n/**\n * Given an array of postfix terms and operand variables, returns the result of\n * the postfix evaluation.\n *\n * @example\n *\n * ```js\n * import evaluate from '@tannin/evaluate';\n *\n * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +'\n * const terms = [ '3', '4', '5', '*', '6', '/', '+' ];\n *\n * evaluate( terms, {} );\n * // ⇒ 6.333333333333334\n * ```\n *\n * @param {string[]} postfix Postfix terms.\n * @param {Object} variables Operand variables.\n *\n * @return {*} Result of evaluation.\n */\nexport default function evaluate( postfix, variables ) {\n\tvar stack = [],\n\t\ti, j, args, getOperatorResult, term, value;\n\n\tfor ( i = 0; i < postfix.length; i++ ) {\n\t\tterm = postfix[ i ];\n\n\t\tgetOperatorResult = OPERATORS[ term ];\n\t\tif ( getOperatorResult ) {\n\t\t\t// Pop from stack by number of function arguments.\n\t\t\tj = getOperatorResult.length;\n\t\t\targs = Array( j );\n\t\t\twhile ( j-- ) {\n\t\t\t\targs[ j ] = stack.pop();\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tvalue = getOperatorResult.apply( null, args );\n\t\t\t} catch ( earlyReturn ) {\n\t\t\t\treturn earlyReturn;\n\t\t\t}\n\t\t} else if ( variables.hasOwnProperty( term ) ) {\n\t\t\tvalue = variables[ term ];\n\t\t} else {\n\t\t\tvalue = +term;\n\t\t}\n\n\t\tstack.push( value );\n\t}\n\n\treturn stack[ 0 ];\n}\n","import compile from '@tannin/compile';\n\n/**\n * Given a C expression, returns a function which, when called with a value,\n * evaluates the result with the value assumed to be the \"n\" variable of the\n * expression. The result will be coerced to its numeric equivalent.\n *\n * @param {string} expression C expression.\n *\n * @return {Function} Evaluator function.\n */\nexport default function pluralForms( expression ) {\n\tvar evaluate = compile( expression );\n\n\treturn function( n ) {\n\t\treturn +evaluate( { n: n } );\n\t};\n}\n","var PRECEDENCE, OPENERS, TERMINATORS, PATTERN;\n\n/**\n * Operator precedence mapping.\n *\n * @type {Object}\n */\nPRECEDENCE = {\n\t'(': 9,\n\t'!': 8,\n\t'*': 7,\n\t'/': 7,\n\t'%': 7,\n\t'+': 6,\n\t'-': 6,\n\t'<': 5,\n\t'<=': 5,\n\t'>': 5,\n\t'>=': 5,\n\t'==': 4,\n\t'!=': 4,\n\t'&&': 3,\n\t'||': 2,\n\t'?': 1,\n\t'?:': 1,\n};\n\n/**\n * Characters which signal pair opening, to be terminated by terminators.\n *\n * @type {string[]}\n */\nOPENERS = [ '(', '?' ];\n\n/**\n * Characters which signal pair termination, the value an array with the\n * opener as its first member. The second member is an optional operator\n * replacement to push to the stack.\n *\n * @type {string[]}\n */\nTERMINATORS = {\n\t')': [ '(' ],\n\t':': [ '?', '?:' ],\n};\n\n/**\n * Pattern matching operators and openers.\n *\n * @type {RegExp}\n */\nPATTERN = /<=|>=|==|!=|&&|\\|\\||\\?:|\\(|!|\\*|\\/|%|\\+|-|<|>|\\?|\\)|:/;\n\n/**\n * Given a C expression, returns the equivalent postfix (Reverse Polish)\n * notation terms as an array.\n *\n * If a postfix string is desired, simply `.join( ' ' )` the result.\n *\n * @example\n *\n * ```js\n * import postfix from '@tannin/postfix';\n *\n * postfix( 'n > 1' );\n * // ⇒ [ 'n', '1', '>' ]\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {string[]} Postfix terms.\n */\nexport default function postfix( expression ) {\n\tvar terms = [],\n\t\tstack = [],\n\t\tmatch, operator, term, element;\n\n\twhile ( ( match = expression.match( PATTERN ) ) ) {\n\t\toperator = match[ 0 ];\n\n\t\t// Term is the string preceding the operator match. It may contain\n\t\t// whitespace, and may be empty (if operator is at beginning).\n\t\tterm = expression.substr( 0, match.index ).trim();\n\t\tif ( term ) {\n\t\t\tterms.push( term );\n\t\t}\n\n\t\twhile ( ( element = stack.pop() ) ) {\n\t\t\tif ( TERMINATORS[ operator ] ) {\n\t\t\t\tif ( TERMINATORS[ operator ][ 0 ] === element ) {\n\t\t\t\t\t// Substitution works here under assumption that because\n\t\t\t\t\t// the assigned operator will no longer be a terminator, it\n\t\t\t\t\t// will be pushed to the stack during the condition below.\n\t\t\t\t\toperator = TERMINATORS[ operator ][ 1 ] || operator;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) {\n\t\t\t\t// Push to stack if either an opener or when pop reveals an\n\t\t\t\t// element of lower precedence.\n\t\t\t\tstack.push( element );\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// For each popped from stack, push to terms.\n\t\t\tterms.push( element );\n\t\t}\n\n\t\tif ( ! TERMINATORS[ operator ] ) {\n\t\t\tstack.push( operator );\n\t\t}\n\n\t\t// Slice matched fragment from expression to continue match.\n\t\texpression = expression.substr( match.index + operator.length );\n\t}\n\n\t// Push remainder of operand, if exists, to terms.\n\texpression = expression.trim();\n\tif ( expression ) {\n\t\tterms.push( expression );\n\t}\n\n\t// Pop remaining items from stack into terms.\n\treturn terms.concat( stack.reverse() );\n}\n","/**\n * @typedef {() => void} Callback\n *\n * TODO: Remove this typedef and inline `() => void` type.\n *\n * This typedef is used so that a descriptive type is provided in our\n * automatically generated documentation.\n *\n * An in-line type `() => void` would be preferable, but the generated\n * documentation is `null` in that case.\n *\n * @see https://github.com/WordPress/gutenberg/issues/18045\n */\n\n/**\n * Specify a function to execute when the DOM is fully loaded.\n *\n * @param {Callback} callback A function to execute after the DOM is ready.\n *\n * @example\n * ```js\n * import domReady from '@wordpress/dom-ready';\n *\n * domReady( function() {\n * \t//do something after DOM loads.\n * } );\n * ```\n *\n * @return {void}\n */\nexport default function domReady(callback) {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly.\n document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly.\n ) {\n return void callback();\n } // DOMContentLoaded has not fired yet, delay callback until then.\n\n\n document.addEventListener('DOMContentLoaded', callback);\n}\n//# sourceMappingURL=index.js.map","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback AddHook\n *\n * Adds the hook to the appropriate hooks container.\n *\n * @param {string} hookName Name of hook to add\n * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.\n * @param {import('.').Callback} callback Function to call when the hook is run\n * @param {number} [priority=10] Priority of this hook\n */\n\n/**\n * Returns a function which, when invoked, will add a hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {AddHook} Function that adds a new hook.\n */\n\nfunction createAddHook(hooks, storeKey) {\n return function addHook(hookName, namespace, callback) {\n var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!validateNamespace(namespace)) {\n return;\n }\n\n if ('function' !== typeof callback) {\n // eslint-disable-next-line no-console\n console.error('The hook callback must be a function.');\n return;\n } // Validate numeric priority\n\n\n if ('number' !== typeof priority) {\n // eslint-disable-next-line no-console\n console.error('If specified, the hook priority must be a number.');\n return;\n }\n\n var handler = {\n callback: callback,\n priority: priority,\n namespace: namespace\n };\n\n if (hooksStore[hookName]) {\n // Find the correct insert index of the new hook.\n var handlers = hooksStore[hookName].handlers;\n /** @type {number} */\n\n var i;\n\n for (i = handlers.length; i > 0; i--) {\n if (priority >= handlers[i - 1].priority) {\n break;\n }\n }\n\n if (i === handlers.length) {\n // If append, operate via direct assignment.\n handlers[i] = handler;\n } else {\n // Otherwise, insert before index via splice.\n handlers.splice(i, 0, handler);\n } // We may also be currently executing this hook. If the callback\n // we're adding would come after the current callback, there's no\n // problem; otherwise we need to increase the execution index of\n // any other runs by 1 to account for the added element.\n\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex++;\n }\n });\n } else {\n // This is the first hook of its type.\n hooksStore[hookName] = {\n handlers: [handler],\n runs: 0\n };\n }\n\n if (hookName !== 'hookAdded') {\n hooks.doAction('hookAdded', hookName, namespace, callback, priority);\n }\n };\n}\n\nexport default createAddHook;\n//# sourceMappingURL=createAddHook.js.map","/**\n * Returns a function which, when invoked, will return the name of the\n * currently running hook, or `null` if no hook of the given type is currently\n * running.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {() => string | null} Function that returns the current hook name or null.\n */\nfunction createCurrentHook(hooks, storeKey) {\n return function currentHook() {\n var _hooksStore$__current, _hooksStore$__current2;\n\n var hooksStore = hooks[storeKey];\n return (_hooksStore$__current = (_hooksStore$__current2 = hooksStore.__current[hooksStore.__current.length - 1]) === null || _hooksStore$__current2 === void 0 ? void 0 : _hooksStore$__current2.name) !== null && _hooksStore$__current !== void 0 ? _hooksStore$__current : null;\n };\n}\n\nexport default createCurrentHook;\n//# sourceMappingURL=createCurrentHook.js.map","/**\n * Internal dependencies\n */\nimport validateHookName from './validateHookName.js';\n/**\n * @callback DidHook\n *\n * Returns the number of times an action has been fired.\n *\n * @param {string} hookName The hook name to check.\n *\n * @return {number | undefined} The number of times the hook has run.\n */\n\n/**\n * Returns a function which, when invoked, will return the number of times a\n * hook has been called.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DidHook} Function that returns a hook's call count.\n */\n\nfunction createDidHook(hooks, storeKey) {\n return function didHook(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0;\n };\n}\n\nexport default createDidHook;\n//# sourceMappingURL=createDidHook.js.map","/**\n * @callback DoingHook\n * Returns whether a hook is currently being executed.\n *\n * @param {string} [hookName] The name of the hook to check for. If\n * omitted, will check for any hook being executed.\n *\n * @return {boolean} Whether the hook is being executed.\n */\n\n/**\n * Returns a function which, when invoked, will return whether a hook is\n * currently being executed.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DoingHook} Function that returns whether a hook is currently\n * being executed.\n */\nfunction createDoingHook(hooks, storeKey) {\n return function doingHook(hookName) {\n var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook.\n\n if ('undefined' === typeof hookName) {\n return 'undefined' !== typeof hooksStore.__current[0];\n } // Return the __current hook.\n\n\n return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false;\n };\n}\n\nexport default createDoingHook;\n//# sourceMappingURL=createDoingHook.js.map","/**\n * @callback HasHook\n *\n * Returns whether any handlers are attached for the given hookName and optional namespace.\n *\n * @param {string} hookName The name of the hook to check for.\n * @param {string} [namespace] Optional. The unique namespace identifying the callback\n * in the form `vendor/plugin/function`.\n *\n * @return {boolean} Whether there are handlers that are attached to the given hook.\n */\n\n/**\n * Returns a function which, when invoked, will return whether any handlers are\n * attached to a particular hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {HasHook} Function that returns whether any handlers are\n * attached to a particular hook and optional namespace.\n */\nfunction createHasHook(hooks, storeKey) {\n return function hasHook(hookName, namespace) {\n var hooksStore = hooks[storeKey]; // Use the namespace if provided.\n\n if ('undefined' !== typeof namespace) {\n return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) {\n return hook.namespace === namespace;\n });\n }\n\n return hookName in hooksStore;\n };\n}\n\nexport default createHasHook;\n//# sourceMappingURL=createHasHook.js.map","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\n\n/**\n * Internal dependencies\n */\nimport createAddHook from './createAddHook';\nimport createRemoveHook from './createRemoveHook';\nimport createHasHook from './createHasHook';\nimport createRunHook from './createRunHook';\nimport createCurrentHook from './createCurrentHook';\nimport createDoingHook from './createDoingHook';\nimport createDidHook from './createDidHook';\n/**\n * Internal class for constructing hooks. Use `createHooks()` function\n *\n * Note, it is necessary to expose this class to make its type public.\n *\n * @private\n */\n\nexport var _Hooks = function _Hooks() {\n _classCallCheck(this, _Hooks);\n\n /** @type {import('.').Store} actions */\n this.actions = Object.create(null);\n this.actions.__current = [];\n /** @type {import('.').Store} filters */\n\n this.filters = Object.create(null);\n this.filters.__current = [];\n this.addAction = createAddHook(this, 'actions');\n this.addFilter = createAddHook(this, 'filters');\n this.removeAction = createRemoveHook(this, 'actions');\n this.removeFilter = createRemoveHook(this, 'filters');\n this.hasAction = createHasHook(this, 'actions');\n this.hasFilter = createHasHook(this, 'filters');\n this.removeAllActions = createRemoveHook(this, 'actions', true);\n this.removeAllFilters = createRemoveHook(this, 'filters', true);\n this.doAction = createRunHook(this, 'actions');\n this.applyFilters = createRunHook(this, 'filters', true);\n this.currentAction = createCurrentHook(this, 'actions');\n this.currentFilter = createCurrentHook(this, 'filters');\n this.doingAction = createDoingHook(this, 'actions');\n this.doingFilter = createDoingHook(this, 'filters');\n this.didAction = createDidHook(this, 'actions');\n this.didFilter = createDidHook(this, 'filters');\n};\n/** @typedef {_Hooks} Hooks */\n\n/**\n * Returns an instance of the hooks object.\n *\n * @return {Hooks} A Hooks instance.\n */\n\nfunction createHooks() {\n return new _Hooks();\n}\n\nexport default createHooks;\n//# sourceMappingURL=createHooks.js.map","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback RemoveHook\n * Removes the specified callback (or all callbacks) from the hook with a given hookName\n * and namespace.\n *\n * @param {string} hookName The name of the hook to modify.\n * @param {string} namespace The unique namespace identifying the callback in the\n * form `vendor/plugin/function`.\n *\n * @return {number | undefined} The number of callbacks removed.\n */\n\n/**\n * Returns a function which, when invoked, will remove a specified hook or all\n * hooks by the given name.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName,\n * without regard to namespace. Used to create\n * `removeAll*` functions.\n *\n * @return {RemoveHook} Function that removes hooks.\n */\n\nfunction createRemoveHook(hooks, storeKey) {\n var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function removeHook(hookName, namespace) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!removeAll && !validateNamespace(namespace)) {\n return;\n } // Bail if no hooks exist by this name\n\n\n if (!hooksStore[hookName]) {\n return 0;\n }\n\n var handlersRemoved = 0;\n\n if (removeAll) {\n handlersRemoved = hooksStore[hookName].handlers.length;\n hooksStore[hookName] = {\n runs: hooksStore[hookName].runs,\n handlers: []\n };\n } else {\n // Try to find the specified callback to remove.\n var handlers = hooksStore[hookName].handlers;\n\n var _loop = function _loop(i) {\n if (handlers[i].namespace === namespace) {\n handlers.splice(i, 1);\n handlersRemoved++; // This callback may also be part of a hook that is\n // currently executing. If the callback we're removing\n // comes after the current callback, there's no problem;\n // otherwise we need to decrease the execution index of any\n // other runs by 1 to account for the removed element.\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex--;\n }\n });\n }\n };\n\n for (var i = handlers.length - 1; i >= 0; i--) {\n _loop(i);\n }\n }\n\n if (hookName !== 'hookRemoved') {\n hooks.doAction('hookRemoved', hookName, namespace);\n }\n\n return handlersRemoved;\n };\n}\n\nexport default createRemoveHook;\n//# sourceMappingURL=createRemoveHook.js.map","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\n\n/**\n * Returns a function which, when invoked, will execute all callbacks\n * registered to a hook of the specified type, optionally returning the final\n * value of the call chain.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to\n * return its first argument.\n *\n * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks.\n */\nfunction createRunHook(hooks, storeKey) {\n var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function runHooks(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!hooksStore[hookName]) {\n hooksStore[hookName] = {\n handlers: [],\n runs: 0\n };\n }\n\n hooksStore[hookName].runs++;\n var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds.\n\n if ('production' !== process.env.NODE_ENV) {\n // Handle any 'all' hooks registered.\n if ('hookAdded' !== hookName && hooksStore.all) {\n handlers.push.apply(handlers, _toConsumableArray(hooksStore.all.handlers));\n }\n }\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!handlers || !handlers.length) {\n return returnFirstArg ? args[0] : undefined;\n }\n\n var hookInfo = {\n name: hookName,\n currentIndex: 0\n };\n\n hooksStore.__current.push(hookInfo);\n\n while (hookInfo.currentIndex < handlers.length) {\n var handler = handlers[hookInfo.currentIndex];\n var result = handler.callback.apply(null, args);\n\n if (returnFirstArg) {\n args[0] = result;\n }\n\n hookInfo.currentIndex++;\n }\n\n hooksStore.__current.pop();\n\n if (returnFirstArg) {\n return args[0];\n }\n };\n}\n\nexport default createRunHook;\n//# sourceMappingURL=createRunHook.js.map","/**\n * Internal dependencies\n */\nimport createHooks from './createHooks';\n/** @typedef {(...args: any[])=>any} Callback */\n\n/**\n * @typedef Handler\n * @property {Callback} callback The callback\n * @property {string} namespace The namespace\n * @property {number} priority The namespace\n */\n\n/**\n * @typedef Hook\n * @property {Handler[]} handlers Array of handlers\n * @property {number} runs Run counter\n */\n\n/**\n * @typedef Current\n * @property {string} name Hook name\n * @property {number} currentIndex The index\n */\n\n/**\n * @typedef {Record & {__current: Current[]}} Store\n */\n\n/**\n * @typedef {'actions' | 'filters'} StoreKey\n */\n\n/**\n * @typedef {import('./createHooks').Hooks} Hooks\n */\n\nexport var defaultHooks = createHooks();\nvar addAction = defaultHooks.addAction,\n addFilter = defaultHooks.addFilter,\n removeAction = defaultHooks.removeAction,\n removeFilter = defaultHooks.removeFilter,\n hasAction = defaultHooks.hasAction,\n hasFilter = defaultHooks.hasFilter,\n removeAllActions = defaultHooks.removeAllActions,\n removeAllFilters = defaultHooks.removeAllFilters,\n doAction = defaultHooks.doAction,\n applyFilters = defaultHooks.applyFilters,\n currentAction = defaultHooks.currentAction,\n currentFilter = defaultHooks.currentFilter,\n doingAction = defaultHooks.doingAction,\n doingFilter = defaultHooks.doingFilter,\n didAction = defaultHooks.didAction,\n didFilter = defaultHooks.didFilter,\n actions = defaultHooks.actions,\n filters = defaultHooks.filters;\nexport { createHooks, addAction, addFilter, removeAction, removeFilter, hasAction, hasFilter, removeAllActions, removeAllFilters, doAction, applyFilters, currentAction, currentFilter, doingAction, doingFilter, didAction, didFilter, actions, filters };\n//# sourceMappingURL=index.js.map","/**\n * Validate a hookName string.\n *\n * @param {string} hookName The hook name to validate. Should be a non empty string containing\n * only numbers, letters, dashes, periods and underscores. Also,\n * the hook name cannot begin with `__`.\n *\n * @return {boolean} Whether the hook name is valid.\n */\nfunction validateHookName(hookName) {\n if ('string' !== typeof hookName || '' === hookName) {\n // eslint-disable-next-line no-console\n console.error('The hook name must be a non-empty string.');\n return false;\n }\n\n if (/^__/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name cannot begin with `__`.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.');\n return false;\n }\n\n return true;\n}\n\nexport default validateHookName;\n//# sourceMappingURL=validateHookName.js.map","/**\n * Validate a namespace string.\n *\n * @param {string} namespace The namespace to validate - should take the form\n * `vendor/plugin/function`.\n *\n * @return {boolean} Whether the namespace is valid.\n */\nfunction validateNamespace(namespace) {\n if ('string' !== typeof namespace || '' === namespace) {\n // eslint-disable-next-line no-console\n console.error('The namespace must be a non-empty string.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.\\-\\/]*$/.test(namespace)) {\n // eslint-disable-next-line no-console\n console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.');\n return false;\n }\n\n return true;\n}\n\nexport default validateNamespace;\n//# sourceMappingURL=validateNamespace.js.map","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\nimport Tannin from 'tannin';\n/**\n * @typedef {Record} LocaleData\n */\n\n/**\n * Default locale data to use for Tannin domain when not otherwise provided.\n * Assumes an English plural forms expression.\n *\n * @type {LocaleData}\n */\n\nvar DEFAULT_LOCALE_DATA = {\n '': {\n /** @param {number} n */\n plural_forms: function plural_forms(n) {\n return n === 1 ? 0 : 1;\n }\n }\n};\n/*\n * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`,\n * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`.\n */\n\nvar I18N_HOOK_REGEXP = /^i18n\\.(n?gettext|has_translation)(_|$)/;\n/**\n * @typedef {(domain?: string) => LocaleData} GetLocaleData\n *\n * Returns locale data by domain in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData\n *\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData\n *\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/** @typedef {() => void} SubscribeCallback */\n\n/** @typedef {() => void} UnsubscribeCallback */\n\n/**\n * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe\n *\n * Subscribes to changes of locale data\n */\n\n/**\n * @typedef {(domain?: string) => string} GetFilterDomain\n * Retrieve the domain to use when calling domain-specific filters.\n */\n\n/**\n * @typedef {(text: string, domain?: string) => string} __\n *\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n */\n\n/**\n * @typedef {(text: string, context: string, domain?: string) => string} _x\n *\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n */\n\n/**\n * @typedef {() => boolean} IsRtl\n *\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n */\n\n/**\n * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation\n *\n * Check if there is a translation for a given string in singular form.\n */\n\n/** @typedef {import('@wordpress/hooks').Hooks} Hooks */\n\n/**\n * An i18n instance\n *\n * @typedef I18n\n * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape.\n * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data.\n * @property {__} __ Retrieve the translation of text.\n * @property {_x} _x Retrieve translated string with gettext context.\n * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied\n * number.\n * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n * @property {IsRtl} isRTL Check if current locale is RTL.\n * @property {HasTranslation} hasTranslation Check if there is a translation for a given string.\n */\n\n/**\n * Create an i18n instance\n *\n * @param {LocaleData} [initialData] Locale data configuration.\n * @param {string} [initialDomain] Domain for which configuration applies.\n * @param {Hooks} [hooks] Hooks implementation.\n * @return {I18n} I18n instance\n */\n\nexport var createI18n = function createI18n(initialData, initialDomain, hooks) {\n /**\n * The underlying instance of Tannin to which exported functions interface.\n *\n * @type {Tannin}\n */\n var tannin = new Tannin({});\n var listeners = new Set();\n\n var notifyListeners = function notifyListeners() {\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n /**\n * Subscribe to changes of locale data.\n *\n * @param {SubscribeCallback} callback Subscription callback.\n * @return {UnsubscribeCallback} Unsubscribe callback.\n */\n\n\n var subscribe = function subscribe(callback) {\n listeners.add(callback);\n return function () {\n return listeners.delete(callback);\n };\n };\n /** @type {GetLocaleData} */\n\n\n var getLocaleData = function getLocaleData() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return tannin.data[domain];\n };\n /**\n * @param {LocaleData} [data]\n * @param {string} [domain]\n */\n\n\n var doSetLocaleData = function doSetLocaleData(data) {\n var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits\n // a plural forms expression).\n\n tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']);\n };\n /** @type {SetLocaleData} */\n\n\n var setLocaleData = function setLocaleData(data, domain) {\n doSetLocaleData(data, domain);\n notifyListeners();\n };\n /** @type {ResetLocaleData} */\n\n\n var resetLocaleData = function resetLocaleData(data, domain) {\n // Reset all current Tannin locale data.\n tannin.data = {}; // Reset cached plural forms functions cache.\n\n tannin.pluralForms = {};\n setLocaleData(data, domain);\n };\n /**\n * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not\n * otherwise previously assigned.\n *\n * @param {string|undefined} domain Domain to retrieve the translated text.\n * @param {string|undefined} context Context information for the translators.\n * @param {string} single Text to translate if non-plural. Used as\n * fallback return value on a caught error.\n * @param {string} [plural] The text to be used if the number is\n * plural.\n * @param {number} [number] The number to compare against to use\n * either the singular or plural form.\n *\n * @return {string} The translated string.\n */\n\n\n var dcnpgettext = function dcnpgettext() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n var context = arguments.length > 1 ? arguments[1] : undefined;\n var single = arguments.length > 2 ? arguments[2] : undefined;\n var plural = arguments.length > 3 ? arguments[3] : undefined;\n var number = arguments.length > 4 ? arguments[4] : undefined;\n\n if (!tannin.data[domain]) {\n // use `doSetLocaleData` to set silently, without notifying listeners\n doSetLocaleData(undefined, domain);\n }\n\n return tannin.dcnpgettext(domain, context, single, plural, number);\n };\n /** @type {GetFilterDomain} */\n\n\n var getFilterDomain = function getFilterDomain() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return domain;\n };\n /** @type {__} */\n\n\n var __ = function __(text, domain) {\n var translation = dcnpgettext(domain, undefined, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext', translation, text, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain)\n );\n };\n /** @type {_x} */\n\n\n var _x = function _x(text, context, domain) {\n var translation = dcnpgettext(domain, context, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation based on context information.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain)\n );\n };\n /** @type {_n} */\n\n\n var _n = function _n(single, plural, number, domain) {\n var translation = dcnpgettext(domain, undefined, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain)\n );\n };\n /** @type {_nx} */\n\n\n var _nx = function _nx(single, plural, number, context, domain) {\n var translation = dcnpgettext(domain, context, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string with gettext context.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain)\n );\n };\n /** @type {IsRtl} */\n\n\n var isRTL = function isRTL() {\n return 'rtl' === _x('ltr', 'text direction');\n };\n /** @type {HasTranslation} */\n\n\n var hasTranslation = function hasTranslation(single, context, domain) {\n var _tannin$data, _tannin$data2;\n\n var key = context ? context + \"\\x04\" + single : single;\n var result = !!((_tannin$data = tannin.data) !== null && _tannin$data !== void 0 && (_tannin$data2 = _tannin$data[domain !== null && domain !== void 0 ? domain : 'default']) !== null && _tannin$data2 !== void 0 && _tannin$data2[key]);\n\n if (hooks) {\n /**\n * Filters the presence of a translation in the locale data.\n *\n * @param {boolean} hasTranslation Whether the translation is present or not..\n * @param {string} single The singular form of the translated text (used as key in locale data)\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation', result, single, context, domain);\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain);\n }\n\n return result;\n };\n\n if (initialData) {\n setLocaleData(initialData, initialDomain);\n }\n\n if (hooks) {\n /**\n * @param {string} hookName\n */\n var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) {\n if (I18N_HOOK_REGEXP.test(hookName)) {\n notifyListeners();\n }\n };\n\n hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved);\n hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved);\n }\n\n return {\n getLocaleData: getLocaleData,\n setLocaleData: setLocaleData,\n resetLocaleData: resetLocaleData,\n subscribe: subscribe,\n __: __,\n _x: _x,\n _n: _n,\n _nx: _nx,\n isRTL: isRTL,\n hasTranslation: hasTranslation\n };\n};\n//# sourceMappingURL=create-i18n.js.map","/**\n * Internal dependencies\n */\nimport { createI18n } from './create-i18n';\n/**\n * WordPress dependencies\n */\n\nimport { defaultHooks } from '@wordpress/hooks';\nvar i18n = createI18n(undefined, undefined, defaultHooks);\n/**\n * Default, singleton instance of `I18n`.\n */\n\nexport default i18n;\n/*\n * Comments in this file are duplicated from ./i18n due to\n * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722\n */\n\n/**\n * @typedef {import('./create-i18n').LocaleData} LocaleData\n * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback\n * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback\n */\n\n/**\n * Returns locale data by domain in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {string} [domain] Domain for which to get the data.\n * @return {LocaleData} Locale data.\n */\n\nexport var getLocaleData = i18n.getLocaleData.bind(i18n);\n/**\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var setLocaleData = i18n.setLocaleData.bind(i18n);\n/**\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var resetLocaleData = i18n.resetLocaleData.bind(i18n);\n/**\n * Subscribes to changes of locale data\n *\n * @param {SubscribeCallback} callback Subscription callback\n * @return {UnsubscribeCallback} Unsubscribe callback\n */\n\nexport var subscribe = i18n.subscribe.bind(i18n);\n/**\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n *\n * @param {string} text Text to translate.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated text.\n */\n\nexport var __ = i18n.__.bind(i18n);\n/**\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n *\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated context string without pipe.\n */\n\nexport var _x = i18n._x.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _n = i18n._n.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _nx = i18n._nx.bind(i18n);\n/**\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n *\n * @return {boolean} Whether locale is RTL.\n */\n\nexport var isRTL = i18n.isRTL.bind(i18n);\n/**\n * Check if there is a translation for a given string (in singular form).\n *\n * @param {string} single Singular form of the string to look up.\n * @param {string} [context] Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n * @return {boolean} Whether the translation exists or not.\n */\n\nexport var hasTranslation = i18n.hasTranslation.bind(i18n);\n//# sourceMappingURL=default-i18n.js.map","export { sprintf } from './sprintf';\nexport * from './create-i18n';\nexport { default as defaultI18n, setLocaleData, resetLocaleData, getLocaleData, subscribe, __, _x, _n, _nx, isRTL, hasTranslation } from './default-i18n';\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\nimport memoize from 'memize';\nimport sprintfjs from 'sprintf-js';\n/**\n * Log to console, once per message; or more precisely, per referentially equal\n * argument set. Because Jed throws errors, we log these to the console instead\n * to avoid crashing the application.\n *\n * @param {...*} args Arguments to pass to `console.error`\n */\n\nvar logErrorOnce = memoize(console.error); // eslint-disable-line no-console\n\n/**\n * Returns a formatted string. If an error occurs in applying the format, the\n * original format string is returned.\n *\n * @param {string} format The format of the string to generate.\n * @param {...*} args Arguments to apply to the format.\n *\n * @see https://www.npmjs.com/package/sprintf-js\n *\n * @return {string} The formatted string.\n */\n\nexport function sprintf(format) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return sprintfjs.sprintf.apply(sprintfjs, [format].concat(args));\n } catch (error) {\n logErrorOnce('sprintf error: \\n\\n' + error.toString());\n return format;\n }\n}\n//# sourceMappingURL=sprintf.js.map","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const DISABLED_CLASS = 'frm_disabled';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\nexport const SINGLE_SETTINGS_CLASS = 'frm-single-settings';\n\nexport const HOOKS = {\n\tSHOW_FIELD_SETTINGS: 'frmShowedFieldSettings'\n};\n","/**\n * Creates a page elements manager.\n *\n * @param {Object} [initialElements={}] An object containing initial DOM elements.\n * @throws {Error} Throws an error if the `initialElements` is not an object.\n * @return {Object} An object with methods to get and add elements.\n */\nexport function createPageElements( initialElements = {} ) {\n\tif ( typeof initialElements !== 'object' || initialElements === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageElements: initialElements must be a non-null object'\n\t\t);\n\t}\n\n\tlet elements = initialElements;\n\n\t/**\n\t * Retrieve the initialized essential DOM elements.\n\t *\n\t * @return {Object} The initialized elements object.\n\t */\n\tfunction getElements() {\n\t\treturn elements;\n\t}\n\n\t/**\n\t * Add new elements to the elements object.\n\t *\n\t * @param {Object} newElements An object containing new elements to be added.\n\t * @throws {Error} Throws an error if the `newElements` is not a non-null object.\n\t * @return {void} Updates the elements object by merging the new elements into it.\n\t */\n\tfunction addElements( newElements ) {\n\t\tif ( typeof newElements !== 'object' || newElements === null ) {\n\t\t\tthrow new Error(\n\t\t\t\t'addElements: newElements must be a non-null object'\n\t\t\t);\n\t\t}\n\n\t\telements = { ...elements, ...newElements };\n\t}\n\n\treturn { getElements, addElements };\n}\n","/**\n * Creates a page state manager.\n *\n * @param {Object} [initialState={}] An object containing the initial state.\n * @throws {Error} Throws an error if the `initialState` is not a plain object.\n * @return {Object} An object with methods to initialize, get, and set the page state.\n */\nexport function createPageState( initialState = {} ) {\n\tif ( typeof initialState !== 'object' || initialState === null ) {\n\t\tthrow new Error(\n\t\t\t'createPageState: initialState must be a non-null object'\n\t\t);\n\t}\n\n\tlet state = initialState;\n\n\t/**\n\t * Returns the current page state.\n\t *\n\t * @return {Object|null} The current state of the page or null if not initialized.\n\t */\n\tconst getState = () => state;\n\n\t/**\n\t * Returns a specific property from the current page state.\n\t *\n\t * @param {string} propertyName The name of the property to retrieve.\n\t * @return {*} The value of the specified property, or null if it doesn't exist.\n\t */\n\tconst getSingleState = propertyName => {\n\t\tconst value = Reflect.get( state, propertyName );\n\n\t\t// We convert `undefined` to `null` for a consistent API.\n\t\t// This makes it easier for users to handle the results since all missing properties return `null`.\n\t\treturn value === undefined ? null : value;\n\t};\n\n\t/**\n\t * Updates the page state with new values.\n\t *\n\t * @param {Object} newState The new values to update the state with.\n\t * @throws {Error} Throws an error if `newState` is not a plain object.\n\t * @return {void}\n\t */\n\tconst setState = newState => {\n\t\tif ( typeof newState !== 'object' || newState === null ) {\n\t\t\tthrow new Error( 'setState: newState must be a non-null object' );\n\t\t}\n\n\t\tstate = { ...state, ...newState };\n\t};\n\n\t/**\n\t * Updates a specific property in the page state with a new value.\n\t *\n\t * @param {string} propertyName The name of the property to update.\n\t * @param {*} value The new value to set for the property.\n\t * @return {void}\n\t */\n\tconst setSingleState = ( propertyName, value ) => {\n\t\tif ( Reflect.has( state, propertyName ) ) {\n\t\t\tReflect.set( state, propertyName, value );\n\t\t}\n\t};\n\n\treturn { getState, getSingleState, setState, setSingleState };\n}\n","export * from './createPageElements';\nexport * from './createPageState';\n","export const PREFIX = 'frm-page-skeleton';\nexport const SEARCH_RESULT_ITEM = 'frm-card-item';\nexport const VIEWS = {\n\tALL_ITEMS: 'all-items',\n};\n","/**\n * External dependencies\n */\nimport { createPageElements } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEWS } from '../constants';\nimport {\n\tcreateEmptyStateElement,\n\tgetEmptyStateElements,\n} from './emptyStateElement';\n\nconst bodyContent = document.getElementById( 'post-body-content' );\nconst sidebar = document.getElementById( `${ PREFIX }-sidebar` );\n\n// Append empty state elements to body content\nconst emptyState = createEmptyStateElement();\nbodyContent?.appendChild( emptyState );\nconst emptyStateElements = getEmptyStateElements();\n\nexport const { getElements, addElements } = createPageElements( {\n\tbodyContent,\n\n\t// Sidebar elements\n\tsidebar,\n\tsearchInput: sidebar.querySelector( '.frm-search-input' ),\n\tcategoryItems: sidebar.querySelectorAll( `.${ PREFIX }-cat` ),\n\tallItemsCategory: sidebar.querySelector(\n\t\t`.${ PREFIX }-cat[data-category=\"${ VIEWS.ALL_ITEMS }\"]`\n\t),\n\n\t// Empty State elements\n\t...emptyStateElements,\n} );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX } from '../constants';\n\nconst { tag, div, a, img } = window.frmDom;\n\n/**\n * Create and return the Empty State HTML element.\n *\n * @return {HTMLElement} The Empty State element.\n */\nexport function createEmptyStateElement() {\n\tconst button = a( {\n\t\tclassName: 'button button-primary frm-button-primary',\n\t} );\n\tbutton.setAttribute( 'role', 'button' );\n\n\treturn div( {\n\t\tid: `${ PREFIX }-empty-state`,\n\t\tclassName: `frm-flex-col frm-flex-center frm-gap-md ${ HIDDEN_CLASS }`,\n\t\tchildren: [\n\t\t\timg( {\n\t\t\t\tsrc: `${ PLUGIN_URL }/images/page-skeleton/empty-state.svg`,\n\t\t\t\talt: __( 'Empty State', 'formidable' ),\n\t\t\t} ),\n\t\t\tdiv( {\n\t\t\t\tclassName: 'frmcenter',\n\t\t\t\tchildren: [\n\t\t\t\t\ttag( 'h2', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-title frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t\ttag( 'p', {\n\t\t\t\t\t\tclassName: `${ PREFIX }-text frm-mb-0`,\n\t\t\t\t\t} ),\n\t\t\t\t],\n\t\t\t} ),\n\t\t\tbutton,\n\t\t],\n\t} );\n}\n\n/**\n * Return the elements related to the Empty State.\n *\n * @return {Object} Object containing Empty State related DOM elements.\n */\nexport function getEmptyStateElements() {\n\tconst emptyState = document.querySelector( `#${ PREFIX }-empty-state` );\n\n\treturn {\n\t\temptyState,\n\t\temptyStateTitle: emptyState?.querySelector( `.${ PREFIX }-title` ),\n\t\temptyStateText: emptyState?.querySelector( `.${ PREFIX }-text` ),\n\t\temptyStateButton: emptyState?.querySelector( '.button' ),\n\t};\n}\n","export * from './elements';\n","/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { onClickPreventDefault, frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setState } from '../shared';\nimport { resetSearchInput } from '.';\n\n/**\n * Manages event handling for sidebar category links.\n *\n * @return {void}\n */\nexport function addCategoryEvents() {\n\tconst { categoryItems } = getElements();\n\n\t// Attach click and keyboard event listeners to each sidebar category\n\tcategoryItems.forEach( category => {\n\t\tonClickPreventDefault( category, onCategoryClick );\n\t\tcategory.addEventListener( 'keydown', onCategoryKeydown );\n\t} );\n}\n\n/**\n * Handles the click event on a category item.\n *\n * @private\n * @param {Event} event The click event object.\n */\nconst onCategoryClick = event => {\n\tconst clickedCategory = event.currentTarget;\n\tconst newSelectedCategory = clickedCategory.getAttribute( 'data-category' );\n\tlet { selectedCategory, selectedCategoryEl, notEmptySearchText } =\n\t\tgetState();\n\n\t// If the selected category hasn't changed, return early\n\tif ( selectedCategory === newSelectedCategory ) {\n\t\treturn;\n\t}\n\n\t/**\n\t * Filter hook to modify the selected category.\n\t *\n\t * @param {string} selectedCategory The selected category\n\t */\n\tselectedCategory = wp.hooks.applyFilters(\n\t\t'frmPage.selectedCategory',\n\t\tnewSelectedCategory\n\t);\n\n\t// Highlight the newly clicked category and update the application state\n\tselectedCategoryEl.classList.remove( CURRENT_CLASS );\n\tselectedCategoryEl = clickedCategory;\n\tselectedCategoryEl.classList.add( CURRENT_CLASS );\n\tsetState( { selectedCategory, selectedCategoryEl } );\n\n\t// Reset the search input if it contains text\n\tif ( notEmptySearchText ) {\n\t\tresetSearchInput();\n\t}\n\n\t/**\n\t * Trigger custom action to update category content.\n\t *\n\t * @param {string} selectedCategory The selected category.\n\t */\n\twp.hooks.doAction( 'frmPage.onCategoryClick', selectedCategory );\n\n\t// Smoothly display the updated UI elements\n\tconst { bodyContent } = getElements();\n\tnew frmAnimate( bodyContent ).fadeIn();\n};\n\n/**\n * Handles the keyboard event on a category item.\n *\n * @param {KeyboardEvent} event The keyboard event object.\n * @return {void}\n */\nfunction onCategoryKeydown( event ) {\n\t// Only respond to 'Enter' or 'Space' key presses\n\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\tevent.preventDefault();\n\t\tonCategoryClick( event );\n\t}\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Resets the value of the search input and triggers an input event.\n *\n * @return {void}\n */\nexport function resetSearchInput() {\n\tconst { searchInput } = getElements();\n\n\tsearchInput.value = '';\n\tsearchInput.dispatchEvent( new Event( 'input', { bubbles: true } ) );\n}\n\nexport * from './categoryListener';\n","export * from './constants';\nexport * from './elements';\nexport * from './shared';\nexport * from './events';\n","export * from './pageState';\n","/**\n * External dependencies\n */\nimport { createPageState } from 'core/factory';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEWS } from '../constants';\n\nconst { allItemsCategory } = getElements();\n\nexport const { getState, getSingleState, setState, setSingleState } =\n\tcreatePageState( {\n\t\tnotEmptySearchText: false,\n\t\tselectedCategory: VIEWS.ALL_ITEMS,\n\t\tselectedCategoryEl: allItemsCategory,\n\t} );\n","export class frmAnimate {\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements The elements to animate.\n\t * @param {'default'|'cascade'|'cascade-3d'} type The animation type: default | cascade | cascade-3d\n\t */\n\tconstructor( elements, type = 'default' ) {\n\t\tthis.elements = elements;\n\t\tthis.type = type;\n\n\t\tthis.prepareElements();\n\t}\n\n\t/**\n\t * Init animation - fadeIn.\n\t * Requires this.type = 'default';\n\t * ex: new frmAnimate( elements ).fadeIn();\n\t */\n\tfadeIn() {\n\t\tthis.applyStyleToElements( element => {\n\t\t\telement.classList.add( 'frm-fadein-up' );\n\n\t\t\telement.addEventListener( 'animationend', () => {\n\t\t\t\tthis.resetOpacity();\n\t\t\t\telement.classList.remove( 'frm-fadein-up' );\n\t\t\t}, { once: true } );\n\t\t} );\n\t}\n\n\t/**\n\t * Init animation - cascadeFadeIn.\n\t * Requires this.type = 'cascade'|'cascade-3d';\n\t * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn();\n\t * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn();\n\t *\n\t * @param {number} delay The transition delay value.\n\t */\n\tcascadeFadeIn( delay = 0.03 ) {\n\t\tsetTimeout( () => {\n\t\t\tthis.applyStyleToElements( ( element, index ) => {\n\t\t\t\telement.classList.remove( 'frm-animate' );\n\t\t\t\telement.style.transitionDelay = ( ( index + 1 ) * delay ) + 's';\n\t\t\t} );\n\t\t}, 200 );\n\t}\n\n\tprepareElements() {\n\t\tthis.applyStyleToElements( element => {\n\t\t\tif ( 'default' === this.type ) {\n\t\t\t\telement.style.opacity = '0.0';\n\t\t\t}\n\t\t\tif ( 'cascade' === this.type ) {\n\t\t\t\telement.classList.add( 'frm-init-cascade-animation' );\n\t\t\t}\n\t\t\tif ( 'cascade-3d' === this.type ) {\n\t\t\t\telement.classList.add( 'frm-init-fadein-3d' );\n\t\t\t}\n\t\t\telement.classList.add( 'frm-animate' );\n\t\t} );\n\t}\n\n\tresetOpacity() {\n\t\tthis.applyStyleToElements( element => element.style.opacity = '1.0' );\n\t}\n\n\tapplyStyleToElements( callback ) {\n\t\tif ( this.elements instanceof Element ) {\n\t\t\tcallback( this.elements, 0 );\n\t\t\treturn;\n\t\t}\n\t\tif ( 0 < this.elements.length ) {\n\t\t\tthis.elements.forEach( ( element, index ) => callback( element, index ) );\n\t\t}\n\t}\n}\n","// Initialize lastPromise with a resolved promise as the starting point for the queue\nlet lastPromise = Promise.resolve();\n\n/**\n * Adds a task to the request queue.\n *\n * @param {function(): Promise} task A function that returns a promise.\n * @return {Promise} The new last promise in the queue.\n */\nexport const addToRequestQueue = task => lastPromise = lastPromise.then( task ).catch( task );\n","/**\n * Internal dependencies\n */\nimport { hide, show } from '.';\n\n/**\n * Displays form validation error messages.\n *\n * @param {string} inputId The ID selector for the input field with the error.\n * @param {string} errorId The ID selector for the error message display element.\n * @param {string} type The categorization of the error (e.g., \"invalid\", \"empty\").\n * @param {string} [message] Optional. The specific error message to display.\n * @return {void}\n */\nexport const showFormError = ( inputId, errorId, type, message ) => {\n\tconst inputElement = document.querySelector( inputId );\n\tconst errorElement = document.querySelector( errorId );\n\n\tif ( ! inputElement || ! errorElement ) {\n\t\tconsole.warn( 'showFormError: Unable to find input or error element.' );\n\t\treturn;\n\t}\n\n\t// If a message is provided, update the span element's text that matches the error type\n\tif ( message ) {\n\t\tconst span = errorElement.querySelector( `span[frm-error=\"${ type }\"]` );\n\t\tif ( span ) {\n\t\t\tspan.textContent = message;\n\t\t}\n\t}\n\n\t// Assign the error type and make the error message visible\n\terrorElement.setAttribute( 'frm-error', type );\n\tshow( errorElement );\n\n\t// Hide the error message when the user starts typing in the faulty input field\n\tinputElement.addEventListener( 'keyup', () => {\n\t\thide( errorElement );\n\t}, { once: true } );\n};\n","export const { onClickPreventDefault, documentOn } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\n","/**\n * Initializes URL and URLSearchParams objects from the current window's location\n */\nconst url = new URL( window.location.href );\nconst urlParams = url.searchParams;\n\n/**\n * Gets the value of a specified query parameter from the current URL.\n *\n * @param {string} paramName The name of the query parameter to retrieve.\n * @return {string|null} The value associated with the specified query parameter name, or null if not found.\n */\nexport const getQueryParam = paramName => urlParams.get( paramName );\n\n/**\n * Removes a query parameter from the current URL and returns the updated URL string.\n *\n * @param {string} paramName The name of the query parameter to remove.\n * @return {string} The updated URL string.\n */\nexport const removeQueryParam = paramName => {\n\turlParams.delete( paramName );\n\turl.search = urlParams.toString();\n\treturn url.toString();\n};\n\n/**\n * Sets the value of a query parameter in the current URL and optionally updates the browser's history state.\n *\n * @param {string} paramName The name of the query parameter to set.\n * @param {string} paramValue The value to set for the query parameter.\n * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'.\n * @return {string} The updated URL string.\n */\nexport const setQueryParam = ( paramName, paramValue, updateMethod = 'pushState' ) => {\n\turlParams.set( paramName, paramValue );\n\turl.search = urlParams.toString();\n\n\tif ( [ 'pushState', 'replaceState' ].includes( updateMethod ) ) {\n\t\tconst state = { [ paramName ]: paramValue };\n\t\twindow.history[ updateMethod ]( state, '', url );\n\t}\n\n\treturn url.toString();\n};\n\n/**\n * Checks if a query parameter exists in the current URL.\n *\n * @param {string} paramName The name of the query parameter to check.\n * @return {boolean} True if the query parameter exists, otherwise false.\n */\nexport const hasQueryParam = paramName => urlParams.has( paramName );\n","/**\n * Validates an email address using a regular expression.\n *\n * @param {string} email The email address to validate.\n * @return {boolean} True if the email address is valid, otherwise false.\n */\nexport const isValidEmail = email =>\n\ttypeof email === 'string' ? /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/i.test( email ) : false;\n\n/**\n * Validates if the given element is an instance of HTMLElement.\n *\n * @param {any} element Element to be checked.\n * @return {boolean} True if it's an HTMLElement, otherwise false.\n */\nexport const isHTMLElement = element => element instanceof HTMLElement || console.warn( 'Invalid argument: Element must be an instance of HTMLElement' ) || false;\n\n/**\n * Checks if the given object is empty.\n *\n * @param {Object} obj The object to check.\n * @return {boolean} True if the object is empty, otherwise false.\n */\nexport const isEmptyObject = obj => Object.keys( obj ).length === 0 && obj.constructor === Object;\n","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\n\n/**\n * Shows specified elements by removing the hidden class.\n *\n * @param {Array} elements An array of elements to show.\n * @return {void}\n */\nexport const showElements = elements =>\n\tArray.from( elements )?.forEach( element => show( element ) );\n\n/**\n * Hides specified elements by adding the hidden class.\n *\n * @param {Array} elements An array of elements to hide.\n * @return {void}\n */\nexport const hideElements = elements =>\n\tArray.from( elements )?.forEach( element => hide( element ) );\n\n/**\n * Removes the hidden class to show the element.\n *\n * @param {Element} element The element to show.\n * @return {void}\n */\nexport const show = element => element?.classList.remove( HIDDEN_CLASS );\n\n/**\n * Adds the hidden class to hide the element.\n *\n * @param {Element} element The element to hide.\n * @return {void}\n */\nexport const hide = element => element?.classList.add( HIDDEN_CLASS );\n\n/**\n * Checks if an element is visible.\n *\n * @param {HTMLElement} element The HTML element to check for visibility.\n * @return {boolean} Returns true if the element is visible, otherwise false.\n */\nexport const isVisible = element => {\n\tconst styles = window.getComputedStyle( element );\n\treturn styles.getPropertyValue( 'display' ) !== 'none';\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { PLUGIN_URL, HIDDEN_CLASS } from 'core/constants';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, applicationsUrl } from '../shared';\nimport { addElements, getElements } from './elements';\n\nconst { tag, div, span, a, img } = window.frmDom;\n\n// Application templates element\nlet applicationTemplates;\n\n// Base URL for the thumbnail images of applications\nconst thumbnailBaseURL = `${ PLUGIN_URL }/images/applications/thumbnails`;\n\n/**\n * Create and return the application templates HTML element.\n *\n * @param {Object[]} applications Array of application objects.\n * @return {void}\n */\nexport function createApplicationTemplates( applications ) {\n\tif ( ! applications || ! applications.length ) {\n\t\treturn;\n\t}\n\n\tconst templateItems = applications.map( template => createTemplateItem( template ) );\n\n\tapplicationTemplates = div( {\n\t\tid: `${ PREFIX }-applications`,\n\t\tclassName: HIDDEN_CLASS,\n\t\tchildren: [\n\t\t\ttag( 'h2', {\n\t\t\t\ttext: __( 'Application Templates' ),\n\t\t\t\tclassName: 'frm-text-sm frm-mb-sm'\n\t\t\t} ),\n\t\t\ttag( 'ul', {\n\t\t\t\tclassName: `${ PREFIX }-list frm-list-grid-layout`,\n\t\t\t\tchildren: templateItems\n\t\t\t} )\n\t\t]\n\t} );\n}\n\n/**\n * Create and return an individual item element for a application template.\n *\n * @private\n * @param {Object} template The application object.\n * @return {HTMLElement} Element representing a single application template.\n */\nfunction createTemplateItem( template ) {\n\tconst { name, key, hasLiteThumbnail, isWebp } = template;\n\t// eslint-disable-next-line no-nested-ternary\n\tconst thumbnailURL = hasLiteThumbnail\n\t\t? ( isWebp ? `${ thumbnailBaseURL }/${ key }.webp` : `${ thumbnailBaseURL }/${ key }.png` )\n\t\t: `${ thumbnailBaseURL }/placeholder.svg`;\n\n\treturn tag( 'li', {\n\t\tclassName: 'frm-card-item',\n\t\tdata: {\n\t\t\thref: `${ applicationsUrl }&triggerViewApplicationModal=1&template=${ key }`,\n\t\t\t'frm-search-text': name.toLowerCase()\n\t\t},\n\t\tchildren: [\n\t\t\tdiv( {\n\t\t\t\tclassName: `${ PREFIX }-item-icon`,\n\t\t\t\tchild: img( { src: thumbnailURL } )\n\t\t\t} ),\n\t\t\tdiv( {\n\t\t\t\tclassName: `${ PREFIX }-item-body`,\n\t\t\t\tchildren: [\n\t\t\t\t\tspan( {\n\t\t\t\t\t\ttext: __( 'Ready Made Solution', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-meta-tag frm-orange-tag frm-text-xs'\n\t\t\t\t\t} ),\n\t\t\t\t\ttag( 'h3', {\n\t\t\t\t\t\ttext: name,\n\t\t\t\t\t\tclassName: 'frm-text-sm frm-font-medium frm-m-0'\n\t\t\t\t\t} ),\n\t\t\t\t\ta( {\n\t\t\t\t\t\ttext: __( 'See all applications', 'formidable' ),\n\t\t\t\t\t\tclassName: 'frm-text-xs frm-font-semibold',\n\t\t\t\t\t\thref: applicationsUrl\n\t\t\t\t\t} )\n\t\t\t\t]\n\t\t\t} )\n\t\t]\n\t} );\n}\n\n/**\n * Inject application Templates elements into the DOM and the elements object.\n *\n * @return {void}\n */\nexport function addApplicationTemplatesElement() {\n\tconst elements = getElements();\n\n\tif ( elements.applicationTemplates || undefined === applicationTemplates ) {\n\t\treturn;\n\t}\n\n\telements.bodyContent.appendChild( applicationTemplates );\n\n\taddElements( {\n\t\tapplicationTemplates,\n\t\tapplicationTemplatesTitle: applicationTemplates.querySelector( 'h2' ),\n\t\tapplicationTemplatesList: applicationTemplates.querySelector( `.${ PREFIX }-list` ),\n\t\tapplicationTemplateItems: applicationTemplates.querySelectorAll( '.frm-card-item' )\n\t} );\n}\n","/**\n * External dependencies\n */\nimport { getElements, addElements, PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS } from '../shared';\n\nconst { bodyContent } = getElements();\nconst templatesList = document.getElementById( `${ PREFIX }-list` );\nconst customTemplatesSection = document.getElementById( `${ PREFIX }-custom-list-section` );\nconst favoritesCategory = document.querySelector(\n\t`.${ SKELETON_PREFIX }-cat[data-category=\"${ VIEW_SLUGS.FAVORITES }\"]`\n);\nconst modal = document.getElementById( `${ PREFIX }-modal` );\n\naddElements( {\n\t// Body elements\n\theaderCancelButton: document.getElementById( 'frm-publishing' )?.querySelector( 'a' ),\n\tcreateFormButton: document.getElementById( `${ PREFIX }-create-form` ),\n\tpageTitle: document.getElementById( `${ PREFIX }-page-title` ),\n\tpageTitleText: document.getElementById( `${ PREFIX }-page-title-text` ),\n\tpageTitleDivider: document.getElementById( `${ PREFIX }-page-title-divider` ),\n\tupsellBanner: document.getElementById( `${ PREFIX }-upsell-banner` ),\n\textraTemplateCountElements: document.querySelectorAll( `.${ PREFIX }-extra-templates-count` ),\n\n\t// Templates elements\n\ttemplatesList,\n\ttemplateItems: templatesList.querySelectorAll( '.frm-card-item' ),\n\tavailableTemplateItems: templatesList.querySelectorAll( `.frm-card-item:not(.${ PREFIX }-locked-item)` ),\n\ttwinFeaturedTemplateItems: templatesList.querySelectorAll( `.${ PREFIX }-featured-item` ),\n\tfeaturedTemplatesList: document.getElementById( `${ PREFIX }-featured-list` ),\n\n\t// Custom Templates Section elements\n\tcustomTemplatesSection,\n\tcustomTemplateItems: customTemplatesSection.querySelectorAll( '.frm-card-item' ),\n\tcustomTemplatesTitle: document.getElementById( `${ PREFIX }-custom-list-title` ),\n\tcustomTemplatesList: document.getElementById( `${ PREFIX }-custom-list` ),\n\n\t// Sidebar elements\n\tfavoritesCategory,\n\tfavoritesCategoryCountEl: favoritesCategory?.querySelector(\n\t\t`.${ SKELETON_PREFIX }-cat-count`\n\t),\n\tavailableTemplatesCategory: document.querySelector(\n\t\t`.${ SKELETON_PREFIX }-cat[data-category=\"${ VIEW_SLUGS.AVAILABLE_TEMPLATES }\"]`\n\t),\n\n\t// Modal elements\n\tmodal,\n\tmodalItems: modal?.querySelectorAll( `.${ PREFIX }-modal-item` ),\n\t// Create New Template Modal\n\tshowCreateTemplateModalButton: document.getElementById( 'frm-show-create-template-modal' ),\n\tcreateTemplateModal: document.getElementById( 'frm-create-template-modal' ),\n\tcreateTemplateFormsDropdown: document.getElementById( 'frm-create-template-modal-forms-select' ),\n\tcreateTemplateName: document.getElementById( 'frm_create_template_name' ),\n\tcreateTemplateDescription: document.getElementById( 'frm_create_template_description' ),\n\tcreateTemplateButton: document.getElementById( 'frm-create-template-button' ),\n\t// Renew Account Modal\n\trenewAccountModal: document.getElementById( 'frm-renew-modal' ),\n\t// Upgrade Modal\n\tupgradeModal: document.getElementById( 'frm-form-upgrade-modal' ),\n\tupgradeModalTemplateNames: modal?.querySelectorAll( '.frm-upgrade-modal-template-name' ),\n\tupgradeModalPlansIcons: modal?.querySelectorAll( '.frm-upgrade-modal-plan-icon' ),\n\tupgradeModalLink: document.getElementById( 'frm-upgrade-modal-link' ),\n\n\t// New Template Form elements\n\tnewTemplateForm: document.getElementById( 'frm-new-template' ),\n\tnewTemplateNameInput: document.getElementById( 'frm_template_name' ),\n\tnewTemplateDescriptionInput: document.getElementById( 'frm_template_desc' ),\n\tnewTemplateLinkInput: document.getElementById( 'frm_link' ),\n\tnewTemplateActionInput: document.getElementById( 'frm_action_type' ),\n\n\t// Add children of the bodyContent to the elements object.\n\tbodyContentChildren: bodyContent?.children\n} );\n\nexport { getElements, addElements };\n","export * from './elements';\nexport * from './applicationTemplatesElement';\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for an application template.\n *\n * @return {void}\n */\nexport function addApplicationTemplateEvents() {\n\tconst { applicationTemplateItems } = getElements();\n\n\tif ( undefined === applicationTemplateItems ) {\n\t\treturn;\n\t}\n\n\t// Attach click event listener\n\tapplicationTemplateItems.forEach( template => {\n\t\ttemplate.addEventListener( 'click', onApplicationTemplateClick );\n\t} );\n}\n\n/**\n * Handles the click event on an application template.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onApplicationTemplateClick = event => {\n\t// Check if the clicked element is an anchor tag\n\tif ( event.target.closest( 'a' ) ) {\n\t\treturn;\n\t}\n\n\tconst applicationTemplate = event.currentTarget;\n\twindow.location.href = applicationTemplate.dataset.href;\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Manages event handling for the \"Create a blank form\" button.\n *\n * @return {void}\n */\nfunction addCreateFormButtonEvents() {\n\tconst { createFormButton } = getElements();\n\n\t// Attach click event listener\n\tonClickPreventDefault( createFormButton, onCreateFormButtonClick );\n}\n\n/**\n * Handles the click event on the \"Create a blank form\" button.\n *\n * @private\n * @return {void}\n */\nconst onCreateFormButtonClick = () => {\n\tconst { createFormButton, newTemplateForm, newTemplateNameInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\n\tnewTemplateNameInput.value = '';\n\tnewTemplateActionInput.value = 'frm_install_form';\n\tinstallNewForm( newTemplateForm, 'frm_install_form', createFormButton );\n};\n\nexport default addCreateFormButtonEvents;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState } from '../shared';\nimport { showCreateTemplateModal } from '../ui';\nimport { isCustomCategory } from '../utils';\n\n/**\n * Manages event handling for the 'Create New Template' modal.\n *\n * @return {void}\n */\nfunction addCreateTemplateEvents() {\n\tconst {\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton,\n\t\tshowCreateTemplateModalButton,\n\t\temptyStateButton\n\t} = getElements();\n\n\t// Show the 'Create New Template' modal when either empty state or show modal button is clicked\n\tonClickPreventDefault( showCreateTemplateModalButton, onShowCreateTemplateModalButtonClick );\n\tonClickPreventDefault( emptyStateButton, onShowCreateTemplateModalButtonClick );\n\n\t// Handle changes in the forms selection dropdown for creating a new template\n\tcreateTemplateFormsDropdown.addEventListener( 'change', onFormsSelectChange );\n\n\t// Create a new template when the create button inside the modal is clicked\n\tonClickPreventDefault( createTemplateButton, onCreateTemplateButtonClick );\n}\n\n/**\n * Handles the click event on the 'Create Template' button, showing the 'Create New Template' modal.\n *\n * @private\n * @return {void}\n */\nconst onShowCreateTemplateModalButtonClick = () => {\n\tconst { selectedCategory } = getState();\n\tif ( ! isCustomCategory( selectedCategory ) ) {\n\t\treturn;\n\t}\n\n\tshowCreateTemplateModal();\n};\n\n/**\n * Handles changes in the forms selection dropdown for creating a new template.\n *\n * @private\n * @return {void}\n */\nconst onFormsSelectChange = () => {\n\tconst { createTemplateFormsDropdown: formsSelect } = getElements();\n\tconst formId = formsSelect.value;\n\n\tif ( ! formId || formId === 'no-forms' ) {\n\t\ttoggleDisableModalElements( true );\n\t\treturn;\n\t}\n\n\ttoggleDisableModalElements( false );\n\n\tconst selectedOption = formsSelect.options[ formsSelect.selectedIndex ];\n\tconst formDescription = selectedOption.dataset.description.trim();\n\n\tlet formName = selectedOption.dataset.name.trim();\n\tconst templateString = ` ${ __( 'Template', 'formidable' ) }`;\n\tif ( ! formName.endsWith( templateString ) ) {\n\t\tformName += templateString;\n\t}\n\n\tconst { createTemplateName, createTemplateDescription } = getElements();\n\tcreateTemplateName.value = formName;\n\tcreateTemplateDescription.value = formDescription;\n};\n\n/**\n * Toggles the disabled state of elements in the 'Create Template' modal.\n *\n * @private\n * @param {boolean} shouldDisable True to disable, false to enable.\n * @return {void}\n */\nconst toggleDisableModalElements = shouldDisable => {\n\tconst { createTemplateName, createTemplateDescription, createTemplateButton } = getElements();\n\n\t// Toggle the disabled attribute for input and textarea\n\t[ createTemplateName, createTemplateDescription ].forEach( element => {\n\t\telement.disabled = shouldDisable;\n\t\tif ( shouldDisable ) {\n\t\t\telement.value = ''; // Clear the content for input and textarea\n\t\t}\n\t} );\n\n\t// Toggle the disabled class for the button\n\tcreateTemplateButton.classList.toggle( 'disabled', shouldDisable );\n};\n\n/**\n * Handles the click event on the 'Create Template' button to create a new template.\n *\n * @private\n * @return {void}\n */\nconst onCreateTemplateButtonClick = () => {\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst actionName = 'frm_create_template';\n\tconst {\n\t\tnewTemplateForm,\n\t\tnewTemplateActionInput,\n\t\tnewTemplateNameInput,\n\t\tnewTemplateDescriptionInput,\n\t\tnewTemplateLinkInput,\n\t\tcreateTemplateName,\n\t\tcreateTemplateDescription,\n\t\tcreateTemplateFormsDropdown,\n\t\tcreateTemplateButton\n\t} = getElements();\n\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateNameInput.value = createTemplateName.value.trim();\n\tnewTemplateDescriptionInput.value = createTemplateDescription.value.trim();\n\tnewTemplateLinkInput.value = createTemplateFormsDropdown.value;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, createTemplateButton );\n};\n\nexport default addCreateTemplateEvents;\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault, addToRequestQueue, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, getState, setSingleState } from '../shared';\nimport { showFavoritesEmptyState } from '../ui';\nimport { isFavoriteTemplate, isCustomTemplate, isFeaturedTemplate, isFavoritesCategory } from '../utils';\n\nconst FAVORITE_BUTTON_CLASS = `.${ PREFIX }-item-favorite-button`;\nconst HEART_ICON_SELECTOR = `${ FAVORITE_BUTTON_CLASS } use`;\nconst FILLED_HEART_ICON = '#frm_heart_solid_icon';\nconst LINEAR_HEART_ICON = '#frm_heart_icon';\nconst OPERATION = {\n\tADD: 'add',\n\tREMOVE: 'remove'\n};\n\n/**\n * Manages event handling for favorite buttons.\n *\n * @return {void}\n */\nfunction addFavoriteButtonEvents() {\n\tconst favoriteButtons = document.querySelectorAll( FAVORITE_BUTTON_CLASS );\n\n\t// Attach click event listeners to each favorite button\n\tfavoriteButtons.forEach( favoriteButton =>\n\t\tonClickPreventDefault( favoriteButton, onFavoriteButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the add to favorite button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onFavoriteButtonClick = event => {\n\tconst favoriteButton = event.currentTarget;\n\tconst { templatesList, featuredTemplatesList, favoritesCategoryCountEl, customTemplatesTitle } = getElements();\n\n\t/**\n\t * Get necessary template information\n\t */\n\tconst template = favoriteButton.closest( '.frm-card-item' );\n\tconst templateId = template.dataset.id;\n\tconst isFavorited = isFavoriteTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\tconst isTemplateFeatured = isFeaturedTemplate( template );\n\n\t/**\n\t * Toggle the favorite status in the UI.\n\t * If template is featured, toggle its twin version in the respective list.\n\t */\n\tlet twinFeaturedTemplate = null;\n\n\ttemplate.classList.toggle( `${ PREFIX }-favorite-item`, ! isFavorited );\n\tif ( isTemplateFeatured ) {\n\t\tconst templateList = template.closest( `#${ PREFIX }-list` )\n\t\t\t? featuredTemplatesList\n\t\t\t: templatesList;\n\n\t\tif ( templateList ) {\n\t\t\ttwinFeaturedTemplate = templateList.querySelector(\n\t\t\t\t`.frm-card-item[data-id=\"${ templateId }\"]`\n\t\t\t);\n\t\t\t// Toggle twin template's favorite status\n\t\t\ttwinFeaturedTemplate.classList.toggle(\n\t\t\t\t`${ PREFIX }-favorite-item`,\n\t\t\t\t! isFavorited\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Update favorite counts and icons based on the new state\n\t */\n\tconst { selectedCategory, favoritesCount } = getState();\n\tconst currentOperation = isFavorited ? OPERATION.REMOVE : OPERATION.ADD;\n\tconst heartIcon = template.querySelector( HEART_ICON_SELECTOR );\n\tconst twinTemplateHeartIcon =\n\t\ttwinFeaturedTemplate?.querySelector( HEART_ICON_SELECTOR );\n\n\tif ( OPERATION.ADD === currentOperation ) {\n\t\t// Increment favorite counts\n\t\t++favoritesCount.total;\n\t\tisTemplateCustom ? ++favoritesCount.custom : ++favoritesCount.default; // eslint-disable-line no-unused-expressions\n\t\t// Set heart icon to filled\n\t\theartIcon.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', FILLED_HEART_ICON );\n\t} else {\n\t\t// Decrement favorite counts\n\t\t--favoritesCount.total;\n\t\tisTemplateCustom ? --favoritesCount.custom : --favoritesCount.default; // eslint-disable-line no-unused-expressions\n\t\t// Set heart icon to outline\n\t\theartIcon.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t\ttwinTemplateHeartIcon?.setAttribute( 'xlink:href', LINEAR_HEART_ICON );\n\t}\n\n\t// Update UI and state to reflect new favorite counts\n\tfavoritesCategoryCountEl.textContent = favoritesCount.total;\n\tsetSingleState( 'favoritesCount', favoritesCount );\n\n\t/**\n\t * Hide UI elements if 'Favorites' is active and counts are zero.\n\t */\n\tif ( isFavoritesCategory( selectedCategory ) ) {\n\t\tif ( 0 === favoritesCount.total ) {\n\t\t\tshowFavoritesEmptyState();\n\t\t}\n\n\t\thide( template );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( templatesList );\n\t\t}\n\n\t\tif ( 0 === favoritesCount.custom || 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Update server-side data for favorite templates\n\taddToRequestQueue( () => updateFavoriteTemplate( templateId, currentOperation, isTemplateCustom ) );\n};\n\n/**\n * Update server-side data for favorite templates.\n *\n * @param {string} id The template ID.\n * @param {string} operation The operation to perform ('add' or 'remove').\n * @param {boolean} isCustom Flag indicating whether the template is custom.\n * @return {Promise} The result of the server-side update.\n */\nfunction updateFavoriteTemplate( id, operation, isCustom ) {\n\tconst formData = new FormData();\n\tconst { doJsonPost } = frmDom.ajax;\n\n\tformData.append( 'template_id', id );\n\tformData.append( 'operation', operation );\n\tformData.append( 'is_custom_template', isCustom );\n\n\treturn doJsonPost( 'add_or_remove_favorite_template', formData );\n}\n\nexport default addFavoriteButtonEvents;\n","/**\n * External dependencies\n */\nimport { addCategoryEvents } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport addCreateFormButtonEvents from './createFormButtonListener';\nimport addFavoriteButtonEvents from './favoriteButtonListener';\nimport addUseTemplateButtonEvents from './useTemplateButtonListener';\nimport addSearchEvents from './searchListener';\nimport addCreateTemplateEvents from './createTemplateListeners';\nimport { showSelectedCategory } from '../ui';\n\n/**\n * Attaches event listeners for handling user interactions.\n *\n * @return {void}\n */\nexport function addEventListeners() {\n\taddCategoryEvents();\n\twp.hooks.addAction( 'frmPage.onCategoryClick', 'frmFormTemplates', selectedCategory => {\n\t\t// Display templates of the selected category\n\t\tshowSelectedCategory( selectedCategory );\n\t} );\n\n\taddCreateFormButtonEvents();\n\taddFavoriteButtonEvents();\n\taddUseTemplateButtonEvents();\n\taddSearchEvents();\n\taddCreateTemplateEvents();\n}\n\nexport { addApplicationTemplateEvents } from './applicationTemplateListener';\n","/**\n * External dependencies\n */\nimport { onClickPreventDefault } from 'core/utils';\nimport { resetSearchInput } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState, setSingleState, VIEW_SLUGS } from '../shared';\nimport { showSearchState, displaySearchElements } from '../ui';\n\nconst { init: initSearch } = window.frmDom.search;\n\n/**\n * Adds search-related event listeners by calling the 'initSearch' function.\n *\n * @see frmDom.search method\n * @return {void}\n */\nfunction addSearchEvents() {\n\tconst { searchInput, emptyStateButton } = getElements();\n\n\tinitSearch( searchInput, 'frm-card-item', { handleSearchResult } );\n\tonClickPreventDefault( emptyStateButton, onEmptyStateButtonClick );\n}\n\n/**\n * Manages UI state based on search results and input value.\n *\n * @private\n * @param {Object} args Contains flags for search status.\n * @param {boolean} args.foundSomething True if search yielded results.\n * @param {boolean} args.notEmptySearchText True if search input is not empty.\n * @param {Event} event The event object (input, search, or change event).\n * @return {void}\n */\nfunction handleSearchResult( { foundSomething, notEmptySearchText }, event ) {\n\t// Prevent double calls as window.frmDom.search.init attaches both 'input' and 'search' events,\n\t// triggering this method twice on 'x' button click.\n\tif ( event && event.type === 'search' && event.target.value === '' ) {\n\t\treturn;\n\t}\n\n\tconst state = getState();\n\tconst { allItemsCategory } = getElements();\n\n\tsetSingleState( 'notEmptySearchText', notEmptySearchText );\n\n\t// Revert to 'All Templates' if search and selected category are both empty\n\tif ( ! state.notEmptySearchText && ! state.selectedCategory ) {\n\t\tallItemsCategory.dispatchEvent(\n\t\t\tnew Event( 'click', { bubbles: true } )\n\t\t);\n\n\t\treturn;\n\t}\n\n\t// Display search state if a category is selected\n\tif ( state.selectedCategory ) {\n\t\tshowSearchState( notEmptySearchText );\n\n\t\t// Setting \"selectedCategory\" to an empty string as a flag for search state\n\t\tif ( notEmptySearchText ) {\n\t\t\tsetSingleState( 'selectedCategory', '' );\n\t\t}\n\t}\n\n\tdisplaySearchElements( foundSomething, notEmptySearchText );\n}\n\n/**\n * Handles the click event on the empty state button.\n *\n * @private\n * @return {void}\n */\nconst onEmptyStateButtonClick = () => {\n\tconst { emptyState } = getElements();\n\tif ( VIEW_SLUGS.SEARCH !== emptyState.dataset?.view ) {\n\t\treturn;\n\t}\n\n\t// Set selectedCategory to '' as search state flag that triggers ALL_ITEMS category if search input is empty\n\t// @see handleSearchResult()\n\tsetSingleState( 'selectedCategory', '' );\n\tresetSearchInput();\n\n\tconst { searchInput } = getElements();\n\tsearchInput.focus();\n};\n\nexport default addSearchEvents;\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, setSingleState } from '../shared';\nimport { showLockedTemplateModal } from '../ui/';\nimport { isCustomTemplate, isLockedTemplate } from '../utils';\n\n/**\n * Manages event handling for use template buttons.\n *\n * @return {void}\n */\nfunction addUseTemplateButtonEvents() {\n\tconst useTemplateButtons = document.querySelectorAll( `.${ PREFIX }-use-template-button` );\n\n\t// Attach click event listeners to each use template button\n\tuseTemplateButtons.forEach( useTemplateButton =>\n\t\tuseTemplateButton.addEventListener( 'click', onUseTemplateButtonClick )\n\t);\n}\n\n/**\n * Handles the click event on the use template button.\n *\n * @private\n * @param {Event} event The click event object.\n * @return {void}\n */\nconst onUseTemplateButtonClick = event => {\n\tconst useTemplateButton = event.currentTarget;\n\n\tconst template = useTemplateButton.closest( '.frm-card-item' );\n\tconst isLocked = isLockedTemplate( template );\n\tconst isTemplateCustom = isCustomTemplate( template );\n\n\t// Allow the default link behavior, if the template is custom and not locked\n\tif ( ! isLocked && isTemplateCustom ) {\n\t\treturn;\n\t}\n\n\t// Prevent the default link behavior for non-custom or locked templates\n\tevent.preventDefault();\n\n\t// Update app state with selected template\n\tsetSingleState( 'selectedTemplate', template );\n\n\t// Handle locked templates\n\tif ( isLocked ) {\n\t\tshowLockedTemplateModal( template );\n\t\treturn;\n\t}\n\n\t// Prepare for new template installation\n\tconst { newTemplateForm, newTemplateNameInput, newTemplateDescriptionInput, newTemplateLinkInput, newTemplateActionInput } = getElements();\n\tconst { installNewForm } = window.frmAdminBuild;\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst templateDescription = template.querySelector( '.frm-form-templates-item-description' ).textContent.trim();\n\tconst actionName = 'frm_install_template';\n\n\tnewTemplateNameInput.value = templateName;\n\tnewTemplateDescriptionInput.value = templateDescription;\n\tnewTemplateActionInput.value = actionName;\n\tnewTemplateLinkInput.value = useTemplateButton.href;\n\n\t// Install new form template\n\tinstallNewForm( newTemplateForm, actionName, useTemplateButton );\n};\n\nexport default addUseTemplateButtonEvents;\n","/**\n * Internal dependencies\n */\nimport { setupInitialView, initializeModal } from './ui';\nimport { buildCategorizedTemplates, maybeAddApplicationTemplates } from './templates';\nimport { addEventListeners } from './events';\n\n/**\n * Initializes form templates.\n *\n * @return {void}\n */\nfunction initializeFormTemplates() {\n\tmaybeAddApplicationTemplates();\n\tinitializeModal();\n\tbuildCategorizedTemplates();\n\tsetupInitialView();\n\taddEventListeners();\n}\n\nexport default initializeFormTemplates;\n","export const { canAccessApplicationDashboard, applicationsUrl } = window.frmGlobal;\nexport const { FEATURED_TEMPLATES_KEYS, upgradeLink } = window.frmFormTemplatesVars;\n\nexport const PREFIX = 'frm-form-templates';\n\nexport const VIEW_SLUGS = {\n\tAVAILABLE_TEMPLATES: 'available-templates',\n\tFAVORITES: 'favorites',\n\tCUSTOM: 'custom',\n\tSEARCH: 'search'\n};\n\nexport const PLANS = {\n\tBASIC: 'basic',\n\tPLUS: 'plus',\n\tBUSINESS: 'business',\n\tELITE: 'elite',\n\tRENEW: 'renew',\n\tFREE: 'free'\n};\n\nexport const MODAL_SIZES = {\n\tGENERAL: '440px',\n\tCREATE_TEMPLATE: '550px'\n};\n","export * from './constants';\nexport * from './pageState';\n","/**\n * External dependencies\n */\nimport { getState, getSingleState, setState, setSingleState } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nconst { templatesCount, favoritesCount, customCount } = window.frmFormTemplatesVars;\nconst { availableTemplateItems } = getElements();\nconst availableTemplatesCount = availableTemplateItems.length;\n\nsetState( {\n\tavailableTemplatesCount,\n\tcustomCount: Number( customCount ),\n\textraTemplatesCount: templatesCount - availableTemplatesCount,\n\tfavoritesCount,\n\tselectedTemplate: false,\n} );\n\nexport { getState, getSingleState, setState, setSingleState };\n","/**\n * Internal dependencies\n */\nimport { addApplicationTemplatesElement, createApplicationTemplates } from '../elements';\nimport { addApplicationTemplateEvents } from '../events';\nimport { canAccessApplicationDashboard } from '../shared';\n\n/**\n * Adds application templates if the user has dashboard access.\n *\n * @return {void}\n */\nexport function maybeAddApplicationTemplates() {\n\t// Exit if the user doesn't have permission to see application dashboard\n\tif ( ! canAccessApplicationDashboard ) {\n\t\treturn;\n\t}\n\n\tconst { doJsonFetch } = frmDom.ajax;\n\n\tdoJsonFetch( 'get_applications_data&view=templates' ).then( setupApplicationTemplates );\n}\n\n/**\n * Sets up application templates by creating HTML elements, injecting them into the DOM,\n * and adding event handlers.\n *\n * @private\n * @param {Object} data The data object containing information for application templates.\n * @return {void}\n */\nfunction setupApplicationTemplates( data ) {\n\t// Create application templates\n\tcreateApplicationTemplates( data.templates );\n\n\t// Inject templates into the DOM\n\taddApplicationTemplatesElement();\n\n\t// Set up event handling\n\taddApplicationTemplateEvents();\n}\n","/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\nexport const categorizedTemplates = {};\n\n/**\n * Builds a categorized list of templates.\n *\n * @return {void}\n */\nexport function buildCategorizedTemplates() {\n\tconst { templateItems } = getElements();\n\n\ttemplateItems.forEach( template => {\n\t\t// Extract and split the categories from data attribute\n\t\tconst categories = template.getAttribute( 'data-categories' ).split( ',' );\n\n\t\tcategories.forEach( category => {\n\t\t\t// Initialize the category array if not already done\n\t\t\tif ( ! categorizedTemplates[ category ] ) {\n\t\t\t\tcategorizedTemplates[ category ] = [];\n\t\t\t}\n\n\t\t\t// Add the template to the appropriate category\n\t\t\tcategorizedTemplates[ category ].push( template );\n\t\t} );\n\t} );\n}\n","export * from './categorizeTemplates';\nexport * from './applicationTemplates';\n","export { default as setupInitialView } from './setupInitialView';\nexport * from './initializeModal';\nexport * from './pageTitle';\nexport * from './showHeaderCancelButton';\nexport * from './showSelectedCategory';\nexport * from './searchState';\nexport * from './showEmptyState';\nexport * from './showModal';\n","import { MODAL_SIZES } from '../shared';\n\nlet modalWidget = null;\n\n/**\n * Initialize the modal widget.\n *\n * @return {void}\n */\nexport async function initializeModal() {\n\tconst { initModal, offsetModalY } = window.frmAdminBuild;\n\n\tmodalWidget = initModal( '#frm-form-templates-modal', MODAL_SIZES.GENERAL );\n\n\t// Set the vertical offset for the modal\n\tif ( modalWidget ) {\n\t\toffsetModalY( modalWidget, '103px' );\n\t}\n\n\t// Customize the confirm modal appearance: adjusting its width and vertical position\n\twp.hooks.addAction( 'frmAdmin.beforeOpenConfirmModal', 'frmFormTemplates', options => {\n\t\tconst { $info: confirmModal } = options;\n\n\t\tconfirmModal.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\t\toffsetModalY( confirmModal, '103px' );\n\t} );\n}\n\n/**\n * Retrieve the modal widget.\n *\n * @return {Object|false} The modal widget or false.\n */\nexport function getModalWidget() {\n\treturn modalWidget;\n}\n","/**\n * External dependencies\n */\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\n\n/**\n * Sets the page title based on a given string or the currently selected category.\n *\n * @param {string} [title] Optional title to display.\n * @return {void}\n */\nexport function updatePageTitle( title ) {\n\tconst { pageTitleText } = getElements();\n\n\tconst newTitle =\n\t\ttitle ||\n\t\tgetSingleState( 'selectedCategoryEl' ).querySelector( `.${ SKELETON_PREFIX }-cat-text` ).textContent;\n\n\tpageTitleText.textContent = newTitle;\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { CURRENT_CLASS } from 'core/constants';\nimport { frmAnimate, showElements, hideElements, show, hide, isVisible } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getSingleState } from '../shared';\nimport { showSearchEmptyState, updatePageTitle } from '.';\n\n/**\n * Updates the UI to display the search state.\n *\n * @param {boolean} notEmptySearchText True if search input is not empty.\n * @return {void}\n */\nexport function showSearchState( notEmptySearchText ) {\n\tconst { bodyContent, bodyContentChildren, pageTitle, templatesList, applicationTemplates } = getElements();\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\t// Remove highlighting from the currently selected category if the search text is not empty\n\tif ( notEmptySearchText ) {\n\t\tgetSingleState( 'selectedCategoryEl' ).classList.remove( CURRENT_CLASS );\n\t}\n\n\t// Hide non-relevant elements in the body content\n\thideElements( bodyContentChildren );\n\n\t// Update the page title and display relevant elements\n\tupdatePageTitle( __( 'Search Result', 'formidable' ) );\n\tshowElements( [ pageTitle, templatesList, applicationTemplates ] );\n\n\t// Smoothly display the updated UI elements\n\tbodyContentAnimate.fadeIn();\n}\n\n/**\n * Displays search results based on search outcome.\n *\n * @param {boolean} foundSomething True if search yielded results.\n * @return {void}\n */\nexport function displaySearchElements( foundSomething ) {\n\t// Show empty state if no templates found\n\tif ( ! foundSomething ) {\n\t\tshowSearchEmptyState();\n\t\treturn;\n\t}\n\n\t// Hide empty state if currently displayed\n\tconst { emptyState } = getElements();\n\tif ( isVisible( emptyState ) ) {\n\t\tconst { pageTitle } = getElements();\n\t\thide( emptyState );\n\t\tshow( pageTitle );\n\t}\n\n\tconst { templatesList, applicationTemplates, applicationTemplatesTitle, applicationTemplatesList } = getElements();\n\n\tshowElements( [ templatesList, applicationTemplates, applicationTemplatesTitle ] );\n\n\tif ( templatesList.offsetHeight === 0 ) {\n\t\thideElements( [ templatesList, applicationTemplatesTitle ] );\n\t}\n\n\tif ( applicationTemplatesList?.offsetHeight === 0 ) {\n\t\thide( applicationTemplates );\n\t}\n}\n","/**\n * External dependencies\n */\nimport { HIDE_JS_CLASS } from 'core/constants';\nimport { frmAnimate, hasQueryParam, hideElements, show, hide } from 'core/utils';\nimport { PREFIX as SKELETON_PREFIX } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { getState } from '../shared';\nimport { showHeaderCancelButton } from './';\n\n/**\n * Sets up the initial view, performing any required\n * DOM manipulations for proper element presentation.\n *\n * @return {void}\n */\nfunction setupInitialView() {\n\tconst {\n\t\tsidebar,\n\t\tsearchInput,\n\t\tbodyContent,\n\t\ttwinFeaturedTemplateItems,\n\t\tavailableTemplatesCategory\n\t} = getElements();\n\n\tconst bodyContentAnimate = new frmAnimate( bodyContent );\n\n\tsearchInput.value = '';\n\n\t// Hide the twin featured template items\n\thideElements( twinFeaturedTemplateItems );\n\n\t// Set the 'Available Templates' count if it is present\n\tif ( availableTemplatesCategory ) {\n\t\tconst { availableTemplatesCount } = getState();\n\t\tavailableTemplatesCategory.querySelector( `.${ SKELETON_PREFIX }-cat-count` ).textContent = availableTemplatesCount;\n\t}\n\n\t// Update extra templates count\n\tconst { extraTemplateCountElements } = getElements();\n\tconst { extraTemplatesCount } = getState();\n\textraTemplateCountElements.forEach( element => element.textContent = extraTemplatesCount );\n\n\t// Smoothly display the updated UI elements\n\tbodyContent.classList.remove( HIDE_JS_CLASS );\n\tsidebar.classList.remove( HIDE_JS_CLASS );\n\tbodyContentAnimate.fadeIn();\n\tshow( sidebar );\n\n\t// Show the \"Cancel\" button in the header if the 'return_page' query param is present\n\tif ( hasQueryParam( 'return_page' ) ) {\n\t\tshowHeaderCancelButton();\n\t}\n}\n\nexport default setupInitialView;\n","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { VIEW_SLUGS, getState } from '../shared';\n\n/**\n * Display the search-empty state.\n *\n * @return {void}\n */\nexport function showSearchEmptyState() {\n\tconst { notEmptySearchText } = getState();\n\tconst { pageTitle, emptyState, emptyStateButton, applicationTemplates } = getElements();\n\n\t// Toggle visibility and remove attributes based on search status\n\tif ( VIEW_SLUGS.SEARCH === emptyState.dataset?.view ) {\n\t\tif ( notEmptySearchText ) {\n\t\t\tshow( emptyState );\n\t\t\thideElements( [ pageTitle, applicationTemplates ] );\n\t\t} else {\n\t\t\thide( emptyState );\n\t\t\temptyState.removeAttribute( 'data-view' );\n\t\t}\n\n\t\treturn;\n\t}\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.SEARCH );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No templates found', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'Sorry, we didn\\'t find any templates that match your criteria.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Start from Scratch', 'formidable' );\n\n\t// Display the empty state\n\thideElements( [ pageTitle, applicationTemplates ] );\n\tshowElements( [ emptyState, emptyStateButton ] );\n}\n\n/**\n * Display the favorites-empty state.\n *\n * @return {void}\n */\nexport function showFavoritesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.FAVORITES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'No favorites', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t added any templates to your favorites yet.',\n\t\t'formidable'\n\t);\n\n\t// Display the empty state\n\thideElements( [ pageTitle, emptyStateButton ] );\n\tshow( emptyState );\n}\n\n/**\n * Display the custom-empty state.\n *\n * @return {void}\n */\nexport function showCustomTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.CUSTOM );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\temptyStateTitle.textContent = __( 'You currently have no templates.', 'formidable' );\n\temptyStateText.textContent = __(\n\t\t'You haven\\'t created any form templates. Begin now to simplify your workflow and save time.',\n\t\t'formidable'\n\t);\n\temptyStateButton.textContent = __( 'Create Template', 'formidable' );\n\n\t// Display the empty state\n\thide( pageTitle );\n\tshowElements( [ emptyState, emptyStateButton ] );\n}\n\n/**\n * Display the available-templates-empty state.\n *\n * @return {void}\n */\nexport function showAvailableTemplatesEmptyState() {\n\tconst { pageTitle, emptyState, emptyStateButton } = getElements();\n\n\t// Assign state attributes\n\temptyState.setAttribute( 'data-view', VIEW_SLUGS.AVAILABLE_TEMPLATES );\n\n\t// Update text content\n\tconst { emptyStateTitle, emptyStateText } = getElements();\n\tconst { extraTemplatesCount } = getState();\n\temptyStateTitle.textContent = __( 'No Templates Available', 'formidable' );\n\temptyStateText.textContent = sprintf(\n\t\t// translators: %s is the number of extra templates available\n\t\t__( 'Upgrade to PRO for %s+ options or explore Free Templates.', 'formidable' ),\n\t\textraTemplatesCount\n\t);\n\n\t// Display the empty state\n\thideElements( [ pageTitle, emptyStateButton ] );\n\tshow( emptyState );\n}\n","/**\n * External dependencies\n */\nimport { frmAnimate } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\n\n/**\n * Display the \"Cancel\" button in the header.\n *\n * @return {void}\n */\nexport function showHeaderCancelButton() {\n\tconst { headerCancelButton } = getElements();\n\tnew frmAnimate( headerCancelButton ).fadeIn();\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * External dependencies\n */\nimport { hideElements, show } from 'core/utils';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { MODAL_SIZES, PLANS, upgradeLink } from '../shared';\nimport { getModalWidget } from './';\n\n/**\n * Display the locked template modal.\n *\n * @param {HTMLElement} template The template element.\n * @return {void}\n */\nexport function showLockedTemplateModal( template ) {\n\tconst plan = template.dataset.requiredPlan;\n\n\tswitch ( plan ) {\n\t\tcase PLANS.BASIC:\n\t\tcase PLANS.PLUS:\n\t\tcase PLANS.BUSINESS:\n\t\tcase PLANS.ELITE:\n\t\t\tshowUpgradeModal( plan, template );\n\t\t\tbreak;\n\t\tcase PLANS.RENEW:\n\t\t\tshowRenewAccountModal();\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Base function to show a modal dialog with a customizable pre-open execution step.\n *\n * @param {Function} executePreOpen The function to be executed before opening the modal dialog.\n * @return {Function} A higher-order function that can be invoked to display the modal dialog.\n */\nconst showModal = executePreOpen => async ( ...params ) => {\n\tconst dialogWidget = getModalWidget();\n\tif ( ! dialogWidget ) {\n\t\treturn;\n\t}\n\n\tconst { modalItems } = getElements();\n\thideElements( modalItems );\n\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.GENERAL );\n\tawait executePreOpen?.( ...params );\n\tdialogWidget.dialog( 'open' );\n};\n\n// Mapping each plan to the subsequent plans it can upgrade to\nconst upgradablePlans = {\n\tbasic: [ 'basic', 'plus', 'business', 'elite' ],\n\tplus: [ 'plus', 'business', 'elite' ],\n\tbusiness: [ 'business', 'elite' ],\n\telite: [ 'elite' ]\n};\n\n/**\n * Display the modal dialog to prompt the user to upgrade their account.\n *\n * @param {string} plan Current plan name\n * @param {HTMLElement} template The template element\n * @return {void}\n */\nexport const showUpgradeModal = showModal( ( plan, template ) => {\n\tconst templateName = template.querySelector( '.frm-form-template-name' ).textContent.trim();\n\tconst { upgradeModal, upgradeModalTemplateNames, upgradeModalPlansIcons, upgradeModalLink } = getElements();\n\n\t// Update template names\n\tupgradeModalTemplateNames.forEach( element => element.textContent = templateName );\n\n\t// Update plan icons and their availability\n\tupgradeModalPlansIcons.forEach( icon => {\n\t\tconst planType = icon.dataset.plan;\n\t\tconst shouldDisplayCheck = upgradablePlans[ plan ].includes( planType );\n\n\t\t// Toggle icon class based on plan availability\n\t\ticon.classList.toggle( 'frm_green', shouldDisplayCheck );\n\n\t\t// Update SVG icon\n\t\tconst svg = icon.querySelector( 'svg > use' );\n\t\tsvg.setAttribute( 'xlink:href', shouldDisplayCheck ? '#frm_checkmark_icon' : '#frm_close_icon' );\n\t} );\n\n\t// Append template slug to the upgrade modal link URL\n\tconst templateSlug = template.dataset.slug ? `-${ template.dataset.slug }` : '';\n\tupgradeModalLink.href = upgradeLink + templateSlug;\n\n\tshow( upgradeModal );\n} );\n\n/**\n * Display the modal dialog to prompt the user to renew their account.\n *\n * @return {void}\n */\nexport const showRenewAccountModal = showModal( () => {\n\tconst { renewAccountModal } = getElements();\n\tshow( renewAccountModal );\n} );\n\n/**\n * Displays a modal dialog prompting the user to create a new template.\n *\n * @return {void}\n */\nexport const showCreateTemplateModal = showModal( () => {\n\tconst dialogWidget = getModalWidget();\n\tdialogWidget.dialog( 'option', 'width', MODAL_SIZES.CREATE_TEMPLATE );\n\n\tconst { createTemplateModal } = getElements();\n\tshow( createTemplateModal );\n} );\n","/**\n * External dependencies\n */\nimport { showElements, hideElements, show, hide } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { getElements } from '../elements';\nimport { PREFIX, VIEW_SLUGS, getState } from '../shared';\nimport { isFavoriteTemplate } from '../utils';\nimport { categorizedTemplates } from '../templates';\nimport { updatePageTitle, showFavoritesEmptyState, showCustomTemplatesEmptyState, showAvailableTemplatesEmptyState } from './';\n\n/**\n * Show templates based on selected category.\n *\n * @param {string} selectedCategory The selected category to display templates for.\n * @return {void}\n */\nexport function showSelectedCategory( selectedCategory ) {\n\tconst { bodyContentChildren, pageTitle, showCreateTemplateModalButton, templatesList, templateItems } = getElements();\n\n\tif ( SKELETON_VIEWS.ALL_ITEMS !== selectedCategory ) {\n\t\thideElements( bodyContentChildren );\n\t}\n\n\tupdatePageTitle();\n\thide( showCreateTemplateModalButton );\n\tshow( pageTitle );\n\n\tswitch ( selectedCategory ) {\n\t\tcase SKELETON_VIEWS.ALL_ITEMS:\n\t\t\tshowAllTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.AVAILABLE_TEMPLATES:\n\t\t\tshowAvailableTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.FAVORITES:\n\t\t\tshowFavoriteTemplates();\n\t\t\tbreak;\n\t\tcase VIEW_SLUGS.CUSTOM:\n\t\t\tshowCustomTemplates();\n\t\t\tbreak;\n\t\tdefault:\n\t\t\thideElements( templateItems ); // Clear the view for new content\n\t\t\tshowElements( [ templatesList, ...categorizedTemplates[ selectedCategory ] ] );\n\t\t\tbreak;\n\t}\n}\n\n/**\n * Shows all templates when 'All Templates' is the selected category.\n *\n * @return {void}\n */\nexport function showAllTemplates() {\n\tconst {\n\t\tbodyContentChildren,\n\t\tpageTitleDivider,\n\t\ttemplateItems,\n\t\ttwinFeaturedTemplateItems,\n\t\tcustomTemplatesSection,\n\t\temptyState,\n\t\tapplicationTemplates\n\t} = getElements();\n\n\tshowElements( [ ...bodyContentChildren, ...templateItems ] );\n\thideElements( [ pageTitleDivider, ...twinFeaturedTemplateItems, customTemplatesSection, emptyState, applicationTemplates ] );\n}\n\n/**\n * Shows favorite templates.\n *\n * @return {void}\n */\nexport function showFavoriteTemplates() {\n\tconst { favoritesCount } = getState();\n\n\tif ( 0 === favoritesCount.total ) {\n\t\tshowFavoritesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tbodyContent,\n\t\ttemplatesList,\n\t\ttemplateItems,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplatesList,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\t// Clear the view for new content\n\thideElements( templateItems );\n\n\tconst elementsToShow = [];\n\n\t// Get all favorite items from the DOM and add the elements to show\n\tconst favoriteItems = bodyContent.querySelectorAll( `.${ PREFIX }-favorite-item` );\n\telementsToShow.push( ...favoriteItems );\n\n\t// Add default favorites if available\n\tif ( favoritesCount.default > 0 ) {\n\t\telementsToShow.push( templatesList );\n\t}\n\n\t// Add custom favorites if available\n\tif ( favoritesCount.custom > 0 ) {\n\t\tconst nonFavCustomTemplates = Array.from( customTemplateItems ).filter(\n\t\t\ttemplate => ! isFavoriteTemplate( template )\n\t\t);\n\n\t\thideElements( nonFavCustomTemplates );\n\t\telementsToShow.push( customTemplatesSection );\n\t\telementsToShow.push( customTemplatesList );\n\n\t\tif ( 0 === favoritesCount.default ) {\n\t\t\thide( customTemplatesTitle );\n\t\t} else {\n\t\t\telementsToShow.push( customTemplatesTitle );\n\t\t}\n\t}\n\n\t// Show elements that were selected to be shown\n\tshowElements( elementsToShow );\n}\n\n/**\n * Shows custom templates.\n *\n * @return {void}\n */\nexport function showCustomTemplates() {\n\tconst { customCount } = getState();\n\n\tif ( 0 === customCount ) {\n\t\tshowCustomTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst {\n\t\tshowCreateTemplateModalButton,\n\t\tpageTitleDivider,\n\t\tcustomTemplatesSection,\n\t\tcustomTemplatesList,\n\t\tcustomTemplatesTitle,\n\t\tcustomTemplateItems\n\t} = getElements();\n\n\thide( customTemplatesTitle );\n\tshowElements( [ showCreateTemplateModalButton, pageTitleDivider, customTemplatesSection, customTemplatesList, ...customTemplateItems ] );\n}\n\n/**\n * Shows available templates.\n *\n * @return {void}\n */\nexport function showAvailableTemplates() {\n\tconst { availableTemplatesCount } = getState();\n\n\tif ( 0 === availableTemplatesCount ) {\n\t\tshowAvailableTemplatesEmptyState();\n\t\treturn;\n\t}\n\n\tconst { templatesList, templateItems, availableTemplateItems } = getElements();\n\n\thideElements( templateItems ); // Clear the view for new content\n\tshowElements( [ templatesList, ...availableTemplateItems ] );\n}\n\nexport default showSelectedCategory;\n","export * from './validation';\n","/**\n * External dependencies\n */\nimport { isHTMLElement } from 'core/utils';\nimport { VIEWS as SKELETON_VIEWS } from 'core/page-skeleton';\n\n/**\n * Internal dependencies\n */\nimport { PREFIX, VIEW_SLUGS, FEATURED_TEMPLATES_KEYS } from '../shared';\n\n/**\n * Checks if the category is \"All Templates\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"All Templates\", otherwise false.\n */\nexport const isAllTemplatesCategory = category => SKELETON_VIEWS.ALL_ITEMS === category;\n\n/**\n * Checks if the category is \"Favorites\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Favorites\", otherwise false.\n */\nexport const isFavoritesCategory = category => VIEW_SLUGS.FAVORITES === category;\n\n/**\n * Checks if the category is \"Custom\".\n *\n * @param {string} category The category slug.\n * @return {boolean} True if the category is \"Custom\", otherwise false.\n */\nexport const isCustomCategory = category => VIEW_SLUGS.CUSTOM === category;\n\n/**\n * Checks if a template is a favorite.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is a favorite, otherwise false.\n */\nexport const isFavoriteTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-favorite-item` ) : false;\n\n/**\n * Checks if a template is custom.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is custom, otherwise false.\n */\nexport const isCustomTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-custom-item` ) : false;\n\n/**\n * Checks if a template is featured.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is featured, otherwise false.\n */\nexport const isFeaturedTemplate = template =>\n\tisHTMLElement( template ) ? FEATURED_TEMPLATES_KEYS.includes( Number( template.dataset.id ) ) : false;\n\n/**\n * Checks if a template is locked.\n *\n * @param {HTMLElement} template The template element.\n * @return {boolean} True if the template is locked, otherwise false.\n */\nexport const isLockedTemplate = template =>\n\tisHTMLElement( template ) ? template.classList.contains( `${ PREFIX }-locked-item` ) : false;\n","/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>} args Function arguments for cache\n * entry.\n * @property {*} val Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F} fn Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( process.env.NODE_ENV === 'test' ) {\n\t\t// Cache is not exposed in the public API, but used in tests to ensure\n\t\t// expected list progression\n\t\tmemoized.getCache = function() {\n\t\t\treturn [ head, tail, size ];\n\t\t};\n\t}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n","/* global window, exports, define */\n\n!function() {\n 'use strict'\n\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n }\n\n function sprintf(key) {\n // `arguments` is not an array, but should be fine for this call\n return sprintf_format(sprintf_parse(key), arguments)\n }\n\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []))\n }\n\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === 'string') {\n output += parse_tree[i]\n }\n else if (typeof parse_tree[i] === 'object') {\n ph = parse_tree[i] // convenience purposes only\n if (ph.keys) { // keyword argument\n arg = argv[cursor]\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == undefined) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n }\n arg = arg[ph.keys[k]]\n }\n }\n else if (ph.param_no) { // positional argument (explicit)\n arg = argv[ph.param_no]\n }\n else { // positional argument (implicit)\n arg = argv[cursor++]\n }\n\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg()\n }\n\n if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n }\n\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt]\n }\n\n var _fmt = fmt, match, parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0])\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n )\n }\n else {\n throw new SyntaxError('[sprintf] unexpected placeholder')\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return sprintf_cache[fmt] = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports['sprintf'] = sprintf\n exports['vsprintf'] = vsprintf\n }\n if (typeof window !== 'undefined') {\n window['sprintf'] = sprintf\n window['vsprintf'] = vsprintf\n\n if (typeof define === 'function' && define['amd']) {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n","import pluralForms from '@tannin/plural-forms';\n\n/**\n * Tannin constructor options.\n *\n * @typedef {Object} TanninOptions\n *\n * @property {string} [contextDelimiter] Joiner in string lookup with context.\n * @property {Function} [onMissingKey] Callback to invoke when key missing.\n */\n\n/**\n * Domain metadata.\n *\n * @typedef {Object} TanninDomainMetadata\n *\n * @property {string} [domain] Domain name.\n * @property {string} [lang] Language code.\n * @property {(string|Function)} [plural_forms] Plural forms expression or\n * function evaluator.\n */\n\n/**\n * Domain translation pair respectively representing the singular and plural\n * translation.\n *\n * @typedef {[string,string]} TanninTranslation\n */\n\n/**\n * Locale data domain. The key is used as reference for lookup, the value an\n * array of two string entries respectively representing the singular and plural\n * translation.\n *\n * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain\n */\n\n/**\n * Jed-formatted locale data.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData\n */\n\n/**\n * Default Tannin constructor options.\n *\n * @type {TanninOptions}\n */\nvar DEFAULT_OPTIONS = {\n\tcontextDelimiter: '\\u0004',\n\tonMissingKey: null,\n};\n\n/**\n * Given a specific locale data's config `plural_forms` value, returns the\n * expression.\n *\n * @example\n *\n * ```\n * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)'\n * ```\n *\n * @param {string} pf Locale data plural forms.\n *\n * @return {string} Plural forms expression.\n */\nfunction getPluralExpression( pf ) {\n\tvar parts, i, part;\n\n\tparts = pf.split( ';' );\n\n\tfor ( i = 0; i < parts.length; i++ ) {\n\t\tpart = parts[ i ].trim();\n\t\tif ( part.indexOf( 'plural=' ) === 0 ) {\n\t\t\treturn part.substr( 7 );\n\t\t}\n\t}\n}\n\n/**\n * Tannin constructor.\n *\n * @class\n *\n * @param {TanninLocaleData} data Jed-formatted locale data.\n * @param {TanninOptions} [options] Tannin options.\n */\nexport default function Tannin( data, options ) {\n\tvar key;\n\n\t/**\n\t * Jed-formatted locale data.\n\t *\n\t * @name Tannin#data\n\t * @type {TanninLocaleData}\n\t */\n\tthis.data = data;\n\n\t/**\n\t * Plural forms function cache, keyed by plural forms string.\n\t *\n\t * @name Tannin#pluralForms\n\t * @type {Object}\n\t */\n\tthis.pluralForms = {};\n\n\t/**\n\t * Effective options for instance, including defaults.\n\t *\n\t * @name Tannin#options\n\t * @type {TanninOptions}\n\t */\n\tthis.options = {};\n\n\tfor ( key in DEFAULT_OPTIONS ) {\n\t\tthis.options[ key ] = options !== undefined && key in options\n\t\t\t? options[ key ]\n\t\t\t: DEFAULT_OPTIONS[ key ];\n\t}\n}\n\n/**\n * Returns the plural form index for the given domain and value.\n *\n * @param {string} domain Domain on which to calculate plural form.\n * @param {number} n Value for which plural form is to be calculated.\n *\n * @return {number} Plural form index.\n */\nTannin.prototype.getPluralForm = function( domain, n ) {\n\tvar getPluralForm = this.pluralForms[ domain ],\n\t\tconfig, plural, pf;\n\n\tif ( ! getPluralForm ) {\n\t\tconfig = this.data[ domain ][ '' ];\n\n\t\tpf = (\n\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t// @ts-ignore\n\t\t\tconfig.plural_forms\n\t\t);\n\n\t\tif ( typeof pf !== 'function' ) {\n\t\t\tplural = getPluralExpression(\n\t\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t\t// @ts-ignore\n\t\t\t\tconfig.plural_forms\n\t\t\t);\n\n\t\t\tpf = pluralForms( plural );\n\t\t}\n\n\t\tgetPluralForm = this.pluralForms[ domain ] = pf;\n\t}\n\n\treturn getPluralForm( n );\n};\n\n/**\n * Translate a string.\n *\n * @param {string} domain Translation domain.\n * @param {string|void} context Context distinguishing terms of the same name.\n * @param {string} singular Primary key for translation lookup.\n * @param {string=} plural Fallback value used for non-zero plural\n * form index.\n * @param {number=} n Value to use in calculating plural form.\n *\n * @return {string} Translated string.\n */\nTannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) {\n\tvar index, key, entry;\n\n\tif ( n === undefined ) {\n\t\t// Default to singular.\n\t\tindex = 0;\n\t} else {\n\t\t// Find index by evaluating plural form for value.\n\t\tindex = this.getPluralForm( domain, n );\n\t}\n\n\tkey = singular;\n\n\t// If provided, context is prepended to key with delimiter.\n\tif ( context ) {\n\t\tkey = context + this.options.contextDelimiter + singular;\n\t}\n\n\tentry = this.data[ domain ][ key ];\n\n\t// Verify not only that entry exists, but that the intended index is within\n\t// range and non-empty.\n\tif ( entry && entry[ index ] ) {\n\t\treturn entry[ index ];\n\t}\n\n\tif ( this.options.onMissingKey ) {\n\t\tthis.options.onMissingKey( singular, domain );\n\t}\n\n\t// If entry not found, fall back to singular vs. plural with zero index\n\t// representing the singular value.\n\treturn index === 0 ? singular : plural;\n};\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * WordPress dependencies\n */\nimport domReady from '@wordpress/dom-ready';\n\n/**\n * Internal dependencies\n */\nimport { getState, setState } from './shared';\nimport initializeFormTemplates from './initializeFormTemplates';\n\ndomReady( () => {\n\t/**\n\t * Entry point for pre-initialization adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.beforeInitialize', {\n\t\tgetState,\n\t\tsetState\n\t} );\n\n\t// Initialize the form templates\n\tinitializeFormTemplates();\n\n\t/**\n\t * Entry point for post-initialization custom logic or adjustments to the page state.\n\t *\n\t * @param {Object} state Current state of the page.\n\t */\n\twp.hooks.doAction( 'frmFormTemplates.afterInitialize', {\n\t\tgetState,\n\t\tsetState\n\t} );\n\n\t/**\n\t * Trigger a specific action to interact with the hidden form '#frm-new-template',\n\t * which is used for creating or using a form template.\n\t *\n\t * @param {HTMLElement} $form The jQuery object containing the hidden form element.\n\t */\n\twp.hooks.doAction( 'frm_new_form_modal_form', jQuery( '#frm-new-template' ) );\n} );\n"],"names":["_window$frmGlobal","window","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","DISABLED_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","SINGLE_SETTINGS_CLASS","HOOKS","SHOW_FIELD_SETTINGS","createPageElements","initialElements","arguments","length","undefined","_typeof","Error","elements","getElements","addElements","newElements","_objectSpread","createPageState","initialState","state","getState","getSingleState","propertyName","value","Reflect","get","setState","newState","setSingleState","has","set","PREFIX","SEARCH_RESULT_ITEM","VIEWS","ALL_ITEMS","createEmptyStateElement","getEmptyStateElements","bodyContent","document","getElementById","sidebar","concat","emptyState","appendChild","emptyStateElements","_createPageElements","searchInput","querySelector","categoryItems","querySelectorAll","allItemsCategory","__","_window$frmDom","frmDom","tag","div","a","img","button","className","setAttribute","id","children","src","alt","emptyStateTitle","emptyStateText","emptyStateButton","onClickPreventDefault","frmAnimate","resetSearchInput","addCategoryEvents","_getElements","forEach","category","onCategoryClick","addEventListener","onCategoryKeydown","event","clickedCategory","currentTarget","newSelectedCategory","getAttribute","_getState","selectedCategory","selectedCategoryEl","notEmptySearchText","wp","hooks","applyFilters","classList","remove","add","doAction","_getElements2","fadeIn","key","preventDefault","dispatchEvent","Event","bubbles","_createPageState","type","_classCallCheck","prepareElements","_createClass","_this","applyStyleToElements","element","resetOpacity","once","cascadeFadeIn","_this2","delay","setTimeout","index","style","transitionDelay","_this3","opacity","callback","Element","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","hide","show","showFormError","inputId","errorId","message","inputElement","errorElement","console","warn","span","textContent","_window$frmDom$util","util","documentOn","URL","location","href","urlParams","searchParams","getQueryParam","paramName","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","includes","_defineProperty","history","hasQueryParam","isValidEmail","email","test","isHTMLElement","HTMLElement","isEmptyObject","obj","Object","keys","constructor","showElements","_Array$from","Array","from","hideElements","_Array$from2","isVisible","styles","getComputedStyle","getPropertyValue","SKELETON_PREFIX","applicationsUrl","applicationTemplates","thumbnailBaseURL","createApplicationTemplates","applications","templateItems","map","template","createTemplateItem","text","name","hasLiteThumbnail","isWebp","thumbnailURL","data","toLowerCase","child","addApplicationTemplatesElement","applicationTemplatesTitle","applicationTemplatesList","applicationTemplateItems","VIEW_SLUGS","templatesList","customTemplatesSection","favoritesCategory","FAVORITES","modal","headerCancelButton","_document$getElementB","createFormButton","pageTitle","pageTitleText","pageTitleDivider","upsellBanner","extraTemplateCountElements","availableTemplateItems","twinFeaturedTemplateItems","featuredTemplatesList","customTemplateItems","customTemplatesTitle","customTemplatesList","favoritesCategoryCountEl","availableTemplatesCategory","AVAILABLE_TEMPLATES","modalItems","showCreateTemplateModalButton","createTemplateModal","createTemplateFormsDropdown","createTemplateName","createTemplateDescription","createTemplateButton","renewAccountModal","upgradeModal","upgradeModalTemplateNames","upgradeModalPlansIcons","upgradeModalLink","newTemplateForm","newTemplateNameInput","newTemplateDescriptionInput","newTemplateLinkInput","newTemplateActionInput","bodyContentChildren","addApplicationTemplateEvents","onApplicationTemplateClick","target","closest","applicationTemplate","dataset","addCreateFormButtonEvents","onCreateFormButtonClick","installNewForm","frmAdminBuild","showCreateTemplateModal","isCustomCategory","addCreateTemplateEvents","onShowCreateTemplateModalButtonClick","onFormsSelectChange","onCreateTemplateButtonClick","formsSelect","formId","toggleDisableModalElements","selectedOption","options","selectedIndex","formDescription","description","trim","formName","templateString","endsWith","_getElements3","shouldDisable","_getElements4","disabled","toggle","actionName","_getElements5","showFavoritesEmptyState","isFavoriteTemplate","isCustomTemplate","isFeaturedTemplate","isFavoritesCategory","FAVORITE_BUTTON_CLASS","HEART_ICON_SELECTOR","FILLED_HEART_ICON","LINEAR_HEART_ICON","OPERATION","ADD","REMOVE","addFavoriteButtonEvents","favoriteButtons","favoriteButton","onFavoriteButtonClick","_twinFeaturedTemplate","templateId","isFavorited","isTemplateCustom","isTemplateFeatured","twinFeaturedTemplate","templateList","favoritesCount","currentOperation","heartIcon","twinTemplateHeartIcon","total","custom","default","updateFavoriteTemplate","operation","isCustom","formData","FormData","doJsonPost","ajax","append","addUseTemplateButtonEvents","addSearchEvents","showSelectedCategory","addEventListeners","addAction","showSearchState","displaySearchElements","initSearch","init","handleSearchResult","onEmptyStateButtonClick","_ref","foundSomething","_emptyState$dataset","SEARCH","view","focus","showLockedTemplateModal","isLockedTemplate","useTemplateButtons","useTemplateButton","onUseTemplateButtonClick","isLocked","templateName","templateDescription","setupInitialView","initializeModal","buildCategorizedTemplates","maybeAddApplicationTemplates","initializeFormTemplates","canAccessApplicationDashboard","_window$frmFormTempla","frmFormTemplatesVars","FEATURED_TEMPLATES_KEYS","upgradeLink","CUSTOM","PLANS","BASIC","PLUS","BUSINESS","ELITE","RENEW","FREE","MODAL_SIZES","GENERAL","CREATE_TEMPLATE","templatesCount","customCount","availableTemplatesCount","Number","extraTemplatesCount","selectedTemplate","doJsonFetch","setupApplicationTemplates","templates","categorizedTemplates","categories","split","push","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","i","Symbol","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","apply","_next","_throw","modalWidget","_initializeModal","_callee","_window$frmAdminBuild","initModal","offsetModalY","_callee$","_context","confirmModal","$info","dialog","getModalWidget","updatePageTitle","title","newTitle","showSearchEmptyState","bodyContentAnimate","offsetHeight","showHeaderCancelButton","_getState2","sprintf","removeAttribute","showCustomTemplatesEmptyState","_getElements6","showAvailableTemplatesEmptyState","_getElements7","_getElements8","plan","requiredPlan","showUpgradeModal","showRenewAccountModal","showModal","executePreOpen","dialogWidget","_len","params","_key","_args","upgradablePlans","basic","plus","business","elite","icon","planType","shouldDisplayCheck","svg","templateSlug","slug","SKELETON_VIEWS","showAllTemplates","showAvailableTemplates","showFavoriteTemplates","showCustomTemplates","_toConsumableArray","elementsToShow","favoriteItems","nonFavCustomTemplates","filter","_getState3","isAllTemplatesCategory","contains","domReady","jQuery"],"sourceRoot":""} +>>>>>>> master diff --git a/js/formidable_styles.js.map b/js/formidable_styles.js.map index 52627d0e52..f4129f4d61 100644 --- a/js/formidable_styles.js.map +++ b/js/formidable_styles.js.map @@ -1 +1,5 @@ -{"version":3,"file":"formidable_styles.js","mappings":";;;;;;;;;;;;;;;;AAAsC;AACE;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,aAAa,oBAAoB,MAAM;AACnD;AACe;AACf,aAAa,2DAAO;;AAEpB;AACA,SAAS,4DAAQ;AACjB;AACA;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB;AACA,YAAY,GAAG;AACf;AACe;AACf;AACA;;AAEA,cAAc,oBAAoB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AC7GsC;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf,gBAAgB,2DAAO;;AAEvB;AACA,sBAAsB,OAAO;AAC7B;AACA;;;;;;;;;;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;AC3HA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC;;AAEA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,SAAS,iEAAiB;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,QAAQ;;AAEzB;;AAEA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,kBAAkB;AAClB;;;AAGA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YA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DAAiD,mFAAmF,OAAO;;AAEtgB;AACA;AACA;AAC4B;AAC5B;AACA,aAAa,oBAAoB;AACjC;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,iCAAiC;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8CAA8C;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8CAA8C;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,YAAY;;AAE1B,cAAc,YAAY;;AAE1B;AACA,aAAa,sDAAsD;AACnE;AACA;AACA;;AAEA;AACA,aAAa,6BAA6B;AAC1C;AACA;;AAEA;AACA,aAAa,2CAA2C;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,4DAA4D;AACzE;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,6EAA6E;AAC1F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8FAA8F;AAC3G;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,gEAAgE;AAC7E;AACA;AACA;;AAEA,cAAc,kCAAkC;;AAEhD;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,cAAc,eAAe;AAC7B;AACA,cAAc,iBAAiB;AAC/B;AACA,cAAc,WAAW;AACzB,cAAc,IAAI;AAClB,cAAc,IAAI;AAClB,cAAc,IAAI;AAClB;AACA,cAAc,KAAK;AACnB;AACA,cAAc,OAAO;AACrB,cAAc,gBAAgB;AAC9B;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,YAAY,4BAA4B;AACxC;;AAEO;AACP;AACA;AACA;AACA,YAAY;AACZ;AACA,mBAAmB,8CAAM,GAAG;AAC5B;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa,m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;AACA,cAAc,4BAA4B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,2BAA2B,eAAe;AAC1C,qBAAqB,iBAAiB;AACtC,cAAc,iBAAiB;AAC/B,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,KAA+B,GAAG,EAMtC;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACtKA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,IAA8B;AACtC,QAAQ,eAAkB;AAC1B,QAAQ,gBAAmB;AAC3B;AACA;AACA;AACA;;AAEA,YAAY,IAA6C;AACzD,YAAY,mCAAO;AACnB;AACA;AACA;AACA;AACA,aAAa;AAAA,kGAAC;AACd;AACA;AACA;AACA,CAAC,IAAI;;;;;;;;;;;;;;;;;ACtO0C;;AAE/C;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,gGAAgG;AAC9G;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,qCAAqC;AACnD;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA,qBAAqB;;AAErB,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,kBAAkB;AAC7B;AACe;AACf;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,gEAAW;AACnB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB;AACA,WAAW,aAAa;AACxB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpNA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;;ACJqD;AACrD;AACA,+BAA+B,gEAAgB;AAC/C;;;;;;;;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;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","sources":["webpack://formidable/./node_modules/@tannin/compile/index.js","webpack://formidable/./node_modules/@tannin/evaluate/index.js","webpack://formidable/./node_modules/@tannin/plural-forms/index.js","webpack://formidable/./node_modules/@tannin/postfix/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createAddHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createCurrentHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDidHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDoingHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHasHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHooks.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRemoveHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRunHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateHookName.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateNamespace.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/create-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/default-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/index.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/sprintf.js","webpack://formidable/./js/src/admin/components/dependent-updater-component.js","webpack://formidable/./node_modules/memize/index.js","webpack://formidable/./node_modules/sprintf-js/src/sprintf.js","webpack://formidable/./node_modules/tannin/index.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://formidable/webpack/bootstrap","webpack://formidable/webpack/runtime/compat get default export","webpack://formidable/webpack/runtime/define property getters","webpack://formidable/webpack/runtime/hasOwnProperty shorthand","webpack://formidable/webpack/runtime/make namespace object","webpack://formidable/./js/src/admin/styles.js"],"sourcesContent":["import postfix from '@tannin/postfix';\nimport evaluate from '@tannin/evaluate';\n\n/**\n * Given a C expression, returns a function which can be called to evaluate its\n * result.\n *\n * @example\n *\n * ```js\n * import compile from '@tannin/compile';\n *\n * const evaluate = compile( 'n > 1' );\n *\n * evaluate( { n: 2 } );\n * // ⇒ true\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator.\n */\nexport default function compile( expression ) {\n\tvar terms = postfix( expression );\n\n\treturn function( variables ) {\n\t\treturn evaluate( terms, variables );\n\t};\n}\n","/**\n * Operator callback functions.\n *\n * @type {Object}\n */\nvar OPERATORS = {\n\t'!': function( a ) {\n\t\treturn ! a;\n\t},\n\t'*': function( a, b ) {\n\t\treturn a * b;\n\t},\n\t'/': function( a, b ) {\n\t\treturn a / b;\n\t},\n\t'%': function( a, b ) {\n\t\treturn a % b;\n\t},\n\t'+': function( a, b ) {\n\t\treturn a + b;\n\t},\n\t'-': function( a, b ) {\n\t\treturn a - b;\n\t},\n\t'<': function( a, b ) {\n\t\treturn a < b;\n\t},\n\t'<=': function( a, b ) {\n\t\treturn a <= b;\n\t},\n\t'>': function( a, b ) {\n\t\treturn a > b;\n\t},\n\t'>=': function( a, b ) {\n\t\treturn a >= b;\n\t},\n\t'==': function( a, b ) {\n\t\treturn a === b;\n\t},\n\t'!=': function( a, b ) {\n\t\treturn a !== b;\n\t},\n\t'&&': function( a, b ) {\n\t\treturn a && b;\n\t},\n\t'||': function( a, b ) {\n\t\treturn a || b;\n\t},\n\t'?:': function( a, b, c ) {\n\t\tif ( a ) {\n\t\t\tthrow b;\n\t\t}\n\n\t\treturn c;\n\t},\n};\n\n/**\n * Given an array of postfix terms and operand variables, returns the result of\n * the postfix evaluation.\n *\n * @example\n *\n * ```js\n * import evaluate from '@tannin/evaluate';\n *\n * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +'\n * const terms = [ '3', '4', '5', '*', '6', '/', '+' ];\n *\n * evaluate( terms, {} );\n * // ⇒ 6.333333333333334\n * ```\n *\n * @param {string[]} postfix Postfix terms.\n * @param {Object} variables Operand variables.\n *\n * @return {*} Result of evaluation.\n */\nexport default function evaluate( postfix, variables ) {\n\tvar stack = [],\n\t\ti, j, args, getOperatorResult, term, value;\n\n\tfor ( i = 0; i < postfix.length; i++ ) {\n\t\tterm = postfix[ i ];\n\n\t\tgetOperatorResult = OPERATORS[ term ];\n\t\tif ( getOperatorResult ) {\n\t\t\t// Pop from stack by number of function arguments.\n\t\t\tj = getOperatorResult.length;\n\t\t\targs = Array( j );\n\t\t\twhile ( j-- ) {\n\t\t\t\targs[ j ] = stack.pop();\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tvalue = getOperatorResult.apply( null, args );\n\t\t\t} catch ( earlyReturn ) {\n\t\t\t\treturn earlyReturn;\n\t\t\t}\n\t\t} else if ( variables.hasOwnProperty( term ) ) {\n\t\t\tvalue = variables[ term ];\n\t\t} else {\n\t\t\tvalue = +term;\n\t\t}\n\n\t\tstack.push( value );\n\t}\n\n\treturn stack[ 0 ];\n}\n","import compile from '@tannin/compile';\n\n/**\n * Given a C expression, returns a function which, when called with a value,\n * evaluates the result with the value assumed to be the \"n\" variable of the\n * expression. The result will be coerced to its numeric equivalent.\n *\n * @param {string} expression C expression.\n *\n * @return {Function} Evaluator function.\n */\nexport default function pluralForms( expression ) {\n\tvar evaluate = compile( expression );\n\n\treturn function( n ) {\n\t\treturn +evaluate( { n: n } );\n\t};\n}\n","var PRECEDENCE, OPENERS, TERMINATORS, PATTERN;\n\n/**\n * Operator precedence mapping.\n *\n * @type {Object}\n */\nPRECEDENCE = {\n\t'(': 9,\n\t'!': 8,\n\t'*': 7,\n\t'/': 7,\n\t'%': 7,\n\t'+': 6,\n\t'-': 6,\n\t'<': 5,\n\t'<=': 5,\n\t'>': 5,\n\t'>=': 5,\n\t'==': 4,\n\t'!=': 4,\n\t'&&': 3,\n\t'||': 2,\n\t'?': 1,\n\t'?:': 1,\n};\n\n/**\n * Characters which signal pair opening, to be terminated by terminators.\n *\n * @type {string[]}\n */\nOPENERS = [ '(', '?' ];\n\n/**\n * Characters which signal pair termination, the value an array with the\n * opener as its first member. The second member is an optional operator\n * replacement to push to the stack.\n *\n * @type {string[]}\n */\nTERMINATORS = {\n\t')': [ '(' ],\n\t':': [ '?', '?:' ],\n};\n\n/**\n * Pattern matching operators and openers.\n *\n * @type {RegExp}\n */\nPATTERN = /<=|>=|==|!=|&&|\\|\\||\\?:|\\(|!|\\*|\\/|%|\\+|-|<|>|\\?|\\)|:/;\n\n/**\n * Given a C expression, returns the equivalent postfix (Reverse Polish)\n * notation terms as an array.\n *\n * If a postfix string is desired, simply `.join( ' ' )` the result.\n *\n * @example\n *\n * ```js\n * import postfix from '@tannin/postfix';\n *\n * postfix( 'n > 1' );\n * // ⇒ [ 'n', '1', '>' ]\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {string[]} Postfix terms.\n */\nexport default function postfix( expression ) {\n\tvar terms = [],\n\t\tstack = [],\n\t\tmatch, operator, term, element;\n\n\twhile ( ( match = expression.match( PATTERN ) ) ) {\n\t\toperator = match[ 0 ];\n\n\t\t// Term is the string preceding the operator match. It may contain\n\t\t// whitespace, and may be empty (if operator is at beginning).\n\t\tterm = expression.substr( 0, match.index ).trim();\n\t\tif ( term ) {\n\t\t\tterms.push( term );\n\t\t}\n\n\t\twhile ( ( element = stack.pop() ) ) {\n\t\t\tif ( TERMINATORS[ operator ] ) {\n\t\t\t\tif ( TERMINATORS[ operator ][ 0 ] === element ) {\n\t\t\t\t\t// Substitution works here under assumption that because\n\t\t\t\t\t// the assigned operator will no longer be a terminator, it\n\t\t\t\t\t// will be pushed to the stack during the condition below.\n\t\t\t\t\toperator = TERMINATORS[ operator ][ 1 ] || operator;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) {\n\t\t\t\t// Push to stack if either an opener or when pop reveals an\n\t\t\t\t// element of lower precedence.\n\t\t\t\tstack.push( element );\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// For each popped from stack, push to terms.\n\t\t\tterms.push( element );\n\t\t}\n\n\t\tif ( ! TERMINATORS[ operator ] ) {\n\t\t\tstack.push( operator );\n\t\t}\n\n\t\t// Slice matched fragment from expression to continue match.\n\t\texpression = expression.substr( match.index + operator.length );\n\t}\n\n\t// Push remainder of operand, if exists, to terms.\n\texpression = expression.trim();\n\tif ( expression ) {\n\t\tterms.push( expression );\n\t}\n\n\t// Pop remaining items from stack into terms.\n\treturn terms.concat( stack.reverse() );\n}\n","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback AddHook\n *\n * Adds the hook to the appropriate hooks container.\n *\n * @param {string} hookName Name of hook to add\n * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.\n * @param {import('.').Callback} callback Function to call when the hook is run\n * @param {number} [priority=10] Priority of this hook\n */\n\n/**\n * Returns a function which, when invoked, will add a hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {AddHook} Function that adds a new hook.\n */\n\nfunction createAddHook(hooks, storeKey) {\n return function addHook(hookName, namespace, callback) {\n var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!validateNamespace(namespace)) {\n return;\n }\n\n if ('function' !== typeof callback) {\n // eslint-disable-next-line no-console\n console.error('The hook callback must be a function.');\n return;\n } // Validate numeric priority\n\n\n if ('number' !== typeof priority) {\n // eslint-disable-next-line no-console\n console.error('If specified, the hook priority must be a number.');\n return;\n }\n\n var handler = {\n callback: callback,\n priority: priority,\n namespace: namespace\n };\n\n if (hooksStore[hookName]) {\n // Find the correct insert index of the new hook.\n var handlers = hooksStore[hookName].handlers;\n /** @type {number} */\n\n var i;\n\n for (i = handlers.length; i > 0; i--) {\n if (priority >= handlers[i - 1].priority) {\n break;\n }\n }\n\n if (i === handlers.length) {\n // If append, operate via direct assignment.\n handlers[i] = handler;\n } else {\n // Otherwise, insert before index via splice.\n handlers.splice(i, 0, handler);\n } // We may also be currently executing this hook. If the callback\n // we're adding would come after the current callback, there's no\n // problem; otherwise we need to increase the execution index of\n // any other runs by 1 to account for the added element.\n\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex++;\n }\n });\n } else {\n // This is the first hook of its type.\n hooksStore[hookName] = {\n handlers: [handler],\n runs: 0\n };\n }\n\n if (hookName !== 'hookAdded') {\n hooks.doAction('hookAdded', hookName, namespace, callback, priority);\n }\n };\n}\n\nexport default createAddHook;\n//# sourceMappingURL=createAddHook.js.map","/**\n * Returns a function which, when invoked, will return the name of the\n * currently running hook, or `null` if no hook of the given type is currently\n * running.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {() => string | null} Function that returns the current hook name or null.\n */\nfunction createCurrentHook(hooks, storeKey) {\n return function currentHook() {\n var _hooksStore$__current, _hooksStore$__current2;\n\n var hooksStore = hooks[storeKey];\n return (_hooksStore$__current = (_hooksStore$__current2 = hooksStore.__current[hooksStore.__current.length - 1]) === null || _hooksStore$__current2 === void 0 ? void 0 : _hooksStore$__current2.name) !== null && _hooksStore$__current !== void 0 ? _hooksStore$__current : null;\n };\n}\n\nexport default createCurrentHook;\n//# sourceMappingURL=createCurrentHook.js.map","/**\n * Internal dependencies\n */\nimport validateHookName from './validateHookName.js';\n/**\n * @callback DidHook\n *\n * Returns the number of times an action has been fired.\n *\n * @param {string} hookName The hook name to check.\n *\n * @return {number | undefined} The number of times the hook has run.\n */\n\n/**\n * Returns a function which, when invoked, will return the number of times a\n * hook has been called.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DidHook} Function that returns a hook's call count.\n */\n\nfunction createDidHook(hooks, storeKey) {\n return function didHook(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0;\n };\n}\n\nexport default createDidHook;\n//# sourceMappingURL=createDidHook.js.map","/**\n * @callback DoingHook\n * Returns whether a hook is currently being executed.\n *\n * @param {string} [hookName] The name of the hook to check for. If\n * omitted, will check for any hook being executed.\n *\n * @return {boolean} Whether the hook is being executed.\n */\n\n/**\n * Returns a function which, when invoked, will return whether a hook is\n * currently being executed.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DoingHook} Function that returns whether a hook is currently\n * being executed.\n */\nfunction createDoingHook(hooks, storeKey) {\n return function doingHook(hookName) {\n var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook.\n\n if ('undefined' === typeof hookName) {\n return 'undefined' !== typeof hooksStore.__current[0];\n } // Return the __current hook.\n\n\n return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false;\n };\n}\n\nexport default createDoingHook;\n//# sourceMappingURL=createDoingHook.js.map","/**\n * @callback HasHook\n *\n * Returns whether any handlers are attached for the given hookName and optional namespace.\n *\n * @param {string} hookName The name of the hook to check for.\n * @param {string} [namespace] Optional. The unique namespace identifying the callback\n * in the form `vendor/plugin/function`.\n *\n * @return {boolean} Whether there are handlers that are attached to the given hook.\n */\n\n/**\n * Returns a function which, when invoked, will return whether any handlers are\n * attached to a particular hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {HasHook} Function that returns whether any handlers are\n * attached to a particular hook and optional namespace.\n */\nfunction createHasHook(hooks, storeKey) {\n return function hasHook(hookName, namespace) {\n var hooksStore = hooks[storeKey]; // Use the namespace if provided.\n\n if ('undefined' !== typeof namespace) {\n return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) {\n return hook.namespace === namespace;\n });\n }\n\n return hookName in hooksStore;\n };\n}\n\nexport default createHasHook;\n//# sourceMappingURL=createHasHook.js.map","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\n\n/**\n * Internal dependencies\n */\nimport createAddHook from './createAddHook';\nimport createRemoveHook from './createRemoveHook';\nimport createHasHook from './createHasHook';\nimport createRunHook from './createRunHook';\nimport createCurrentHook from './createCurrentHook';\nimport createDoingHook from './createDoingHook';\nimport createDidHook from './createDidHook';\n/**\n * Internal class for constructing hooks. Use `createHooks()` function\n *\n * Note, it is necessary to expose this class to make its type public.\n *\n * @private\n */\n\nexport var _Hooks = function _Hooks() {\n _classCallCheck(this, _Hooks);\n\n /** @type {import('.').Store} actions */\n this.actions = Object.create(null);\n this.actions.__current = [];\n /** @type {import('.').Store} filters */\n\n this.filters = Object.create(null);\n this.filters.__current = [];\n this.addAction = createAddHook(this, 'actions');\n this.addFilter = createAddHook(this, 'filters');\n this.removeAction = createRemoveHook(this, 'actions');\n this.removeFilter = createRemoveHook(this, 'filters');\n this.hasAction = createHasHook(this, 'actions');\n this.hasFilter = createHasHook(this, 'filters');\n this.removeAllActions = createRemoveHook(this, 'actions', true);\n this.removeAllFilters = createRemoveHook(this, 'filters', true);\n this.doAction = createRunHook(this, 'actions');\n this.applyFilters = createRunHook(this, 'filters', true);\n this.currentAction = createCurrentHook(this, 'actions');\n this.currentFilter = createCurrentHook(this, 'filters');\n this.doingAction = createDoingHook(this, 'actions');\n this.doingFilter = createDoingHook(this, 'filters');\n this.didAction = createDidHook(this, 'actions');\n this.didFilter = createDidHook(this, 'filters');\n};\n/** @typedef {_Hooks} Hooks */\n\n/**\n * Returns an instance of the hooks object.\n *\n * @return {Hooks} A Hooks instance.\n */\n\nfunction createHooks() {\n return new _Hooks();\n}\n\nexport default createHooks;\n//# sourceMappingURL=createHooks.js.map","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback RemoveHook\n * Removes the specified callback (or all callbacks) from the hook with a given hookName\n * and namespace.\n *\n * @param {string} hookName The name of the hook to modify.\n * @param {string} namespace The unique namespace identifying the callback in the\n * form `vendor/plugin/function`.\n *\n * @return {number | undefined} The number of callbacks removed.\n */\n\n/**\n * Returns a function which, when invoked, will remove a specified hook or all\n * hooks by the given name.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName,\n * without regard to namespace. Used to create\n * `removeAll*` functions.\n *\n * @return {RemoveHook} Function that removes hooks.\n */\n\nfunction createRemoveHook(hooks, storeKey) {\n var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function removeHook(hookName, namespace) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!removeAll && !validateNamespace(namespace)) {\n return;\n } // Bail if no hooks exist by this name\n\n\n if (!hooksStore[hookName]) {\n return 0;\n }\n\n var handlersRemoved = 0;\n\n if (removeAll) {\n handlersRemoved = hooksStore[hookName].handlers.length;\n hooksStore[hookName] = {\n runs: hooksStore[hookName].runs,\n handlers: []\n };\n } else {\n // Try to find the specified callback to remove.\n var handlers = hooksStore[hookName].handlers;\n\n var _loop = function _loop(i) {\n if (handlers[i].namespace === namespace) {\n handlers.splice(i, 1);\n handlersRemoved++; // This callback may also be part of a hook that is\n // currently executing. If the callback we're removing\n // comes after the current callback, there's no problem;\n // otherwise we need to decrease the execution index of any\n // other runs by 1 to account for the removed element.\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex--;\n }\n });\n }\n };\n\n for (var i = handlers.length - 1; i >= 0; i--) {\n _loop(i);\n }\n }\n\n if (hookName !== 'hookRemoved') {\n hooks.doAction('hookRemoved', hookName, namespace);\n }\n\n return handlersRemoved;\n };\n}\n\nexport default createRemoveHook;\n//# sourceMappingURL=createRemoveHook.js.map","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\n\n/**\n * Returns a function which, when invoked, will execute all callbacks\n * registered to a hook of the specified type, optionally returning the final\n * value of the call chain.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to\n * return its first argument.\n *\n * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks.\n */\nfunction createRunHook(hooks, storeKey) {\n var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function runHooks(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!hooksStore[hookName]) {\n hooksStore[hookName] = {\n handlers: [],\n runs: 0\n };\n }\n\n hooksStore[hookName].runs++;\n var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds.\n\n if ('production' !== process.env.NODE_ENV) {\n // Handle any 'all' hooks registered.\n if ('hookAdded' !== hookName && hooksStore.all) {\n handlers.push.apply(handlers, _toConsumableArray(hooksStore.all.handlers));\n }\n }\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!handlers || !handlers.length) {\n return returnFirstArg ? args[0] : undefined;\n }\n\n var hookInfo = {\n name: hookName,\n currentIndex: 0\n };\n\n hooksStore.__current.push(hookInfo);\n\n while (hookInfo.currentIndex < handlers.length) {\n var handler = handlers[hookInfo.currentIndex];\n var result = handler.callback.apply(null, args);\n\n if (returnFirstArg) {\n args[0] = result;\n }\n\n hookInfo.currentIndex++;\n }\n\n hooksStore.__current.pop();\n\n if (returnFirstArg) {\n return args[0];\n }\n };\n}\n\nexport default createRunHook;\n//# sourceMappingURL=createRunHook.js.map","/**\n * Internal dependencies\n */\nimport createHooks from './createHooks';\n/** @typedef {(...args: any[])=>any} Callback */\n\n/**\n * @typedef Handler\n * @property {Callback} callback The callback\n * @property {string} namespace The namespace\n * @property {number} priority The namespace\n */\n\n/**\n * @typedef Hook\n * @property {Handler[]} handlers Array of handlers\n * @property {number} runs Run counter\n */\n\n/**\n * @typedef Current\n * @property {string} name Hook name\n * @property {number} currentIndex The index\n */\n\n/**\n * @typedef {Record & {__current: Current[]}} Store\n */\n\n/**\n * @typedef {'actions' | 'filters'} StoreKey\n */\n\n/**\n * @typedef {import('./createHooks').Hooks} Hooks\n */\n\nexport var defaultHooks = createHooks();\nvar addAction = defaultHooks.addAction,\n addFilter = defaultHooks.addFilter,\n removeAction = defaultHooks.removeAction,\n removeFilter = defaultHooks.removeFilter,\n hasAction = defaultHooks.hasAction,\n hasFilter = defaultHooks.hasFilter,\n removeAllActions = defaultHooks.removeAllActions,\n removeAllFilters = defaultHooks.removeAllFilters,\n doAction = defaultHooks.doAction,\n applyFilters = defaultHooks.applyFilters,\n currentAction = defaultHooks.currentAction,\n currentFilter = defaultHooks.currentFilter,\n doingAction = defaultHooks.doingAction,\n doingFilter = defaultHooks.doingFilter,\n didAction = defaultHooks.didAction,\n didFilter = defaultHooks.didFilter,\n actions = defaultHooks.actions,\n filters = defaultHooks.filters;\nexport { createHooks, addAction, addFilter, removeAction, removeFilter, hasAction, hasFilter, removeAllActions, removeAllFilters, doAction, applyFilters, currentAction, currentFilter, doingAction, doingFilter, didAction, didFilter, actions, filters };\n//# sourceMappingURL=index.js.map","/**\n * Validate a hookName string.\n *\n * @param {string} hookName The hook name to validate. Should be a non empty string containing\n * only numbers, letters, dashes, periods and underscores. Also,\n * the hook name cannot begin with `__`.\n *\n * @return {boolean} Whether the hook name is valid.\n */\nfunction validateHookName(hookName) {\n if ('string' !== typeof hookName || '' === hookName) {\n // eslint-disable-next-line no-console\n console.error('The hook name must be a non-empty string.');\n return false;\n }\n\n if (/^__/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name cannot begin with `__`.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.');\n return false;\n }\n\n return true;\n}\n\nexport default validateHookName;\n//# sourceMappingURL=validateHookName.js.map","/**\n * Validate a namespace string.\n *\n * @param {string} namespace The namespace to validate - should take the form\n * `vendor/plugin/function`.\n *\n * @return {boolean} Whether the namespace is valid.\n */\nfunction validateNamespace(namespace) {\n if ('string' !== typeof namespace || '' === namespace) {\n // eslint-disable-next-line no-console\n console.error('The namespace must be a non-empty string.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.\\-\\/]*$/.test(namespace)) {\n // eslint-disable-next-line no-console\n console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.');\n return false;\n }\n\n return true;\n}\n\nexport default validateNamespace;\n//# sourceMappingURL=validateNamespace.js.map","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\nimport Tannin from 'tannin';\n/**\n * @typedef {Record} LocaleData\n */\n\n/**\n * Default locale data to use for Tannin domain when not otherwise provided.\n * Assumes an English plural forms expression.\n *\n * @type {LocaleData}\n */\n\nvar DEFAULT_LOCALE_DATA = {\n '': {\n /** @param {number} n */\n plural_forms: function plural_forms(n) {\n return n === 1 ? 0 : 1;\n }\n }\n};\n/*\n * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`,\n * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`.\n */\n\nvar I18N_HOOK_REGEXP = /^i18n\\.(n?gettext|has_translation)(_|$)/;\n/**\n * @typedef {(domain?: string) => LocaleData} GetLocaleData\n *\n * Returns locale data by domain in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData\n *\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData\n *\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/** @typedef {() => void} SubscribeCallback */\n\n/** @typedef {() => void} UnsubscribeCallback */\n\n/**\n * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe\n *\n * Subscribes to changes of locale data\n */\n\n/**\n * @typedef {(domain?: string) => string} GetFilterDomain\n * Retrieve the domain to use when calling domain-specific filters.\n */\n\n/**\n * @typedef {(text: string, domain?: string) => string} __\n *\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n */\n\n/**\n * @typedef {(text: string, context: string, domain?: string) => string} _x\n *\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n */\n\n/**\n * @typedef {() => boolean} IsRtl\n *\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n */\n\n/**\n * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation\n *\n * Check if there is a translation for a given string in singular form.\n */\n\n/** @typedef {import('@wordpress/hooks').Hooks} Hooks */\n\n/**\n * An i18n instance\n *\n * @typedef I18n\n * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape.\n * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data.\n * @property {__} __ Retrieve the translation of text.\n * @property {_x} _x Retrieve translated string with gettext context.\n * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied\n * number.\n * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n * @property {IsRtl} isRTL Check if current locale is RTL.\n * @property {HasTranslation} hasTranslation Check if there is a translation for a given string.\n */\n\n/**\n * Create an i18n instance\n *\n * @param {LocaleData} [initialData] Locale data configuration.\n * @param {string} [initialDomain] Domain for which configuration applies.\n * @param {Hooks} [hooks] Hooks implementation.\n * @return {I18n} I18n instance\n */\n\nexport var createI18n = function createI18n(initialData, initialDomain, hooks) {\n /**\n * The underlying instance of Tannin to which exported functions interface.\n *\n * @type {Tannin}\n */\n var tannin = new Tannin({});\n var listeners = new Set();\n\n var notifyListeners = function notifyListeners() {\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n /**\n * Subscribe to changes of locale data.\n *\n * @param {SubscribeCallback} callback Subscription callback.\n * @return {UnsubscribeCallback} Unsubscribe callback.\n */\n\n\n var subscribe = function subscribe(callback) {\n listeners.add(callback);\n return function () {\n return listeners.delete(callback);\n };\n };\n /** @type {GetLocaleData} */\n\n\n var getLocaleData = function getLocaleData() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return tannin.data[domain];\n };\n /**\n * @param {LocaleData} [data]\n * @param {string} [domain]\n */\n\n\n var doSetLocaleData = function doSetLocaleData(data) {\n var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits\n // a plural forms expression).\n\n tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']);\n };\n /** @type {SetLocaleData} */\n\n\n var setLocaleData = function setLocaleData(data, domain) {\n doSetLocaleData(data, domain);\n notifyListeners();\n };\n /** @type {ResetLocaleData} */\n\n\n var resetLocaleData = function resetLocaleData(data, domain) {\n // Reset all current Tannin locale data.\n tannin.data = {}; // Reset cached plural forms functions cache.\n\n tannin.pluralForms = {};\n setLocaleData(data, domain);\n };\n /**\n * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not\n * otherwise previously assigned.\n *\n * @param {string|undefined} domain Domain to retrieve the translated text.\n * @param {string|undefined} context Context information for the translators.\n * @param {string} single Text to translate if non-plural. Used as\n * fallback return value on a caught error.\n * @param {string} [plural] The text to be used if the number is\n * plural.\n * @param {number} [number] The number to compare against to use\n * either the singular or plural form.\n *\n * @return {string} The translated string.\n */\n\n\n var dcnpgettext = function dcnpgettext() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n var context = arguments.length > 1 ? arguments[1] : undefined;\n var single = arguments.length > 2 ? arguments[2] : undefined;\n var plural = arguments.length > 3 ? arguments[3] : undefined;\n var number = arguments.length > 4 ? arguments[4] : undefined;\n\n if (!tannin.data[domain]) {\n // use `doSetLocaleData` to set silently, without notifying listeners\n doSetLocaleData(undefined, domain);\n }\n\n return tannin.dcnpgettext(domain, context, single, plural, number);\n };\n /** @type {GetFilterDomain} */\n\n\n var getFilterDomain = function getFilterDomain() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return domain;\n };\n /** @type {__} */\n\n\n var __ = function __(text, domain) {\n var translation = dcnpgettext(domain, undefined, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext', translation, text, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain)\n );\n };\n /** @type {_x} */\n\n\n var _x = function _x(text, context, domain) {\n var translation = dcnpgettext(domain, context, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation based on context information.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain)\n );\n };\n /** @type {_n} */\n\n\n var _n = function _n(single, plural, number, domain) {\n var translation = dcnpgettext(domain, undefined, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain)\n );\n };\n /** @type {_nx} */\n\n\n var _nx = function _nx(single, plural, number, context, domain) {\n var translation = dcnpgettext(domain, context, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string with gettext context.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain)\n );\n };\n /** @type {IsRtl} */\n\n\n var isRTL = function isRTL() {\n return 'rtl' === _x('ltr', 'text direction');\n };\n /** @type {HasTranslation} */\n\n\n var hasTranslation = function hasTranslation(single, context, domain) {\n var _tannin$data, _tannin$data2;\n\n var key = context ? context + \"\\x04\" + single : single;\n var result = !!((_tannin$data = tannin.data) !== null && _tannin$data !== void 0 && (_tannin$data2 = _tannin$data[domain !== null && domain !== void 0 ? domain : 'default']) !== null && _tannin$data2 !== void 0 && _tannin$data2[key]);\n\n if (hooks) {\n /**\n * Filters the presence of a translation in the locale data.\n *\n * @param {boolean} hasTranslation Whether the translation is present or not..\n * @param {string} single The singular form of the translated text (used as key in locale data)\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation', result, single, context, domain);\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain);\n }\n\n return result;\n };\n\n if (initialData) {\n setLocaleData(initialData, initialDomain);\n }\n\n if (hooks) {\n /**\n * @param {string} hookName\n */\n var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) {\n if (I18N_HOOK_REGEXP.test(hookName)) {\n notifyListeners();\n }\n };\n\n hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved);\n hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved);\n }\n\n return {\n getLocaleData: getLocaleData,\n setLocaleData: setLocaleData,\n resetLocaleData: resetLocaleData,\n subscribe: subscribe,\n __: __,\n _x: _x,\n _n: _n,\n _nx: _nx,\n isRTL: isRTL,\n hasTranslation: hasTranslation\n };\n};\n//# sourceMappingURL=create-i18n.js.map","/**\n * Internal dependencies\n */\nimport { createI18n } from './create-i18n';\n/**\n * WordPress dependencies\n */\n\nimport { defaultHooks } from '@wordpress/hooks';\nvar i18n = createI18n(undefined, undefined, defaultHooks);\n/**\n * Default, singleton instance of `I18n`.\n */\n\nexport default i18n;\n/*\n * Comments in this file are duplicated from ./i18n due to\n * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722\n */\n\n/**\n * @typedef {import('./create-i18n').LocaleData} LocaleData\n * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback\n * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback\n */\n\n/**\n * Returns locale data by domain in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {string} [domain] Domain for which to get the data.\n * @return {LocaleData} Locale data.\n */\n\nexport var getLocaleData = i18n.getLocaleData.bind(i18n);\n/**\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var setLocaleData = i18n.setLocaleData.bind(i18n);\n/**\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var resetLocaleData = i18n.resetLocaleData.bind(i18n);\n/**\n * Subscribes to changes of locale data\n *\n * @param {SubscribeCallback} callback Subscription callback\n * @return {UnsubscribeCallback} Unsubscribe callback\n */\n\nexport var subscribe = i18n.subscribe.bind(i18n);\n/**\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n *\n * @param {string} text Text to translate.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated text.\n */\n\nexport var __ = i18n.__.bind(i18n);\n/**\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n *\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated context string without pipe.\n */\n\nexport var _x = i18n._x.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _n = i18n._n.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _nx = i18n._nx.bind(i18n);\n/**\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n *\n * @return {boolean} Whether locale is RTL.\n */\n\nexport var isRTL = i18n.isRTL.bind(i18n);\n/**\n * Check if there is a translation for a given string (in singular form).\n *\n * @param {string} single Singular form of the string to look up.\n * @param {string} [context] Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n * @return {boolean} Whether the translation exists or not.\n */\n\nexport var hasTranslation = i18n.hasTranslation.bind(i18n);\n//# sourceMappingURL=default-i18n.js.map","export { sprintf } from './sprintf';\nexport * from './create-i18n';\nexport { default as defaultI18n, setLocaleData, resetLocaleData, getLocaleData, subscribe, __, _x, _n, _nx, isRTL, hasTranslation } from './default-i18n';\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\nimport memoize from 'memize';\nimport sprintfjs from 'sprintf-js';\n/**\n * Log to console, once per message; or more precisely, per referentially equal\n * argument set. Because Jed throws errors, we log these to the console instead\n * to avoid crashing the application.\n *\n * @param {...*} args Arguments to pass to `console.error`\n */\n\nvar logErrorOnce = memoize(console.error); // eslint-disable-line no-console\n\n/**\n * Returns a formatted string. If an error occurs in applying the format, the\n * original format string is returned.\n *\n * @param {string} format The format of the string to generate.\n * @param {...*} args Arguments to apply to the format.\n *\n * @see https://www.npmjs.com/package/sprintf-js\n *\n * @return {string} The formatted string.\n */\n\nexport function sprintf(format) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return sprintfjs.sprintf.apply(sprintfjs, [format].concat(args));\n } catch (error) {\n logErrorOnce('sprintf error: \\n\\n' + error.toString());\n return format;\n }\n}\n//# sourceMappingURL=sprintf.js.map","/**\n * This component updates the dependent style element's values and triggers a custom change event for each style element, initiating the style preview.\n * The names of the elements that will be updated are specified using the \"will-change\" attribute.\n * It is primarily used in components from Style/Quick Settings.\n * For instance, when the \"FrmPrimaryColorStyleComponent\" is changed, it simultaneously updates various style elements like border color, text color, and button backgrounds.\n */\nexport default class frmStyleDependentUpdaterComponent {\n\t/**\n\t * Creates an instance of frmStyleDependentUpdaterComponent.\n\t * @param {HTMLElement} component - The component element.\n\t */\n\tconstructor( component ) {\n\t\tthis.component = component;\n\t\ttry {\n\t\t\tconst willChangeData = JSON.parse( this.component.dataset.willChange );\n\t\t\tthis.data = {\n\t\t\t\tpropagateInputs: this.initPropagationList( willChangeData ),\n\t\t\t\tchangeEvent: new Event( 'change', { bubbles: true } )\n\t\t\t};\n\t\t} catch ( error ) {\n\t\t\tconsole.error( 'Error parsing JSON data from \"will-change\" attribute.', error );\n\t\t}\n\t}\n\n\t/**\n\t * Initializes the list of inputs to propagate changes to.\n\t * The selection is made by provided input's names list in \"will-change\" attribute.\n\t * @param {string[]} inputNames - The names of the inputs to propagate changes to.\n\t * @return {HTMLElement[]} - The list of inputs to propagate changes to.\n\t */\n\tinitPropagationList( inputNames ) {\n\t\tconst list = [];\n\t\tinputNames.forEach( name => {\n\t\t\tconst input = document.querySelector( `input[name=\"${ name }\"]` );\n\t\t\tif ( null !== input ) {\n\t\t\t\tlist.push( input );\n\t\t\t}\n\t\t} );\n\t\treturn list;\n\t}\n\n\t/**\n\t * Updates all dependent elements with the given value.\n\t * @param {string} value - The value to update the dependent elements with.\n\t */\n\tupdateAllDependentElements( value ) {\n\t\tthis.data.propagateInputs.forEach( input => {\n\t\t\tinput.value = value;\n\t\t} );\n\t\tthis.data.propagateInputs[ 0 ].dispatchEvent( this.data.changeEvent );\n\t}\n}\n","/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>} args Function arguments for cache\n * entry.\n * @property {*} val Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F} fn Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( process.env.NODE_ENV === 'test' ) {\n\t\t// Cache is not exposed in the public API, but used in tests to ensure\n\t\t// expected list progression\n\t\tmemoized.getCache = function() {\n\t\t\treturn [ head, tail, size ];\n\t\t};\n\t}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n","/* global window, exports, define */\n\n!function() {\n 'use strict'\n\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n }\n\n function sprintf(key) {\n // `arguments` is not an array, but should be fine for this call\n return sprintf_format(sprintf_parse(key), arguments)\n }\n\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []))\n }\n\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === 'string') {\n output += parse_tree[i]\n }\n else if (typeof parse_tree[i] === 'object') {\n ph = parse_tree[i] // convenience purposes only\n if (ph.keys) { // keyword argument\n arg = argv[cursor]\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == undefined) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n }\n arg = arg[ph.keys[k]]\n }\n }\n else if (ph.param_no) { // positional argument (explicit)\n arg = argv[ph.param_no]\n }\n else { // positional argument (implicit)\n arg = argv[cursor++]\n }\n\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg()\n }\n\n if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n }\n\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt]\n }\n\n var _fmt = fmt, match, parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0])\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n )\n }\n else {\n throw new SyntaxError('[sprintf] unexpected placeholder')\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return sprintf_cache[fmt] = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports['sprintf'] = sprintf\n exports['vsprintf'] = vsprintf\n }\n if (typeof window !== 'undefined') {\n window['sprintf'] = sprintf\n window['vsprintf'] = vsprintf\n\n if (typeof define === 'function' && define['amd']) {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n","import pluralForms from '@tannin/plural-forms';\n\n/**\n * Tannin constructor options.\n *\n * @typedef {Object} TanninOptions\n *\n * @property {string} [contextDelimiter] Joiner in string lookup with context.\n * @property {Function} [onMissingKey] Callback to invoke when key missing.\n */\n\n/**\n * Domain metadata.\n *\n * @typedef {Object} TanninDomainMetadata\n *\n * @property {string} [domain] Domain name.\n * @property {string} [lang] Language code.\n * @property {(string|Function)} [plural_forms] Plural forms expression or\n * function evaluator.\n */\n\n/**\n * Domain translation pair respectively representing the singular and plural\n * translation.\n *\n * @typedef {[string,string]} TanninTranslation\n */\n\n/**\n * Locale data domain. The key is used as reference for lookup, the value an\n * array of two string entries respectively representing the singular and plural\n * translation.\n *\n * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain\n */\n\n/**\n * Jed-formatted locale data.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData\n */\n\n/**\n * Default Tannin constructor options.\n *\n * @type {TanninOptions}\n */\nvar DEFAULT_OPTIONS = {\n\tcontextDelimiter: '\\u0004',\n\tonMissingKey: null,\n};\n\n/**\n * Given a specific locale data's config `plural_forms` value, returns the\n * expression.\n *\n * @example\n *\n * ```\n * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)'\n * ```\n *\n * @param {string} pf Locale data plural forms.\n *\n * @return {string} Plural forms expression.\n */\nfunction getPluralExpression( pf ) {\n\tvar parts, i, part;\n\n\tparts = pf.split( ';' );\n\n\tfor ( i = 0; i < parts.length; i++ ) {\n\t\tpart = parts[ i ].trim();\n\t\tif ( part.indexOf( 'plural=' ) === 0 ) {\n\t\t\treturn part.substr( 7 );\n\t\t}\n\t}\n}\n\n/**\n * Tannin constructor.\n *\n * @class\n *\n * @param {TanninLocaleData} data Jed-formatted locale data.\n * @param {TanninOptions} [options] Tannin options.\n */\nexport default function Tannin( data, options ) {\n\tvar key;\n\n\t/**\n\t * Jed-formatted locale data.\n\t *\n\t * @name Tannin#data\n\t * @type {TanninLocaleData}\n\t */\n\tthis.data = data;\n\n\t/**\n\t * Plural forms function cache, keyed by plural forms string.\n\t *\n\t * @name Tannin#pluralForms\n\t * @type {Object}\n\t */\n\tthis.pluralForms = {};\n\n\t/**\n\t * Effective options for instance, including defaults.\n\t *\n\t * @name Tannin#options\n\t * @type {TanninOptions}\n\t */\n\tthis.options = {};\n\n\tfor ( key in DEFAULT_OPTIONS ) {\n\t\tthis.options[ key ] = options !== undefined && key in options\n\t\t\t? options[ key ]\n\t\t\t: DEFAULT_OPTIONS[ key ];\n\t}\n}\n\n/**\n * Returns the plural form index for the given domain and value.\n *\n * @param {string} domain Domain on which to calculate plural form.\n * @param {number} n Value for which plural form is to be calculated.\n *\n * @return {number} Plural form index.\n */\nTannin.prototype.getPluralForm = function( domain, n ) {\n\tvar getPluralForm = this.pluralForms[ domain ],\n\t\tconfig, plural, pf;\n\n\tif ( ! getPluralForm ) {\n\t\tconfig = this.data[ domain ][ '' ];\n\n\t\tpf = (\n\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t// @ts-ignore\n\t\t\tconfig.plural_forms\n\t\t);\n\n\t\tif ( typeof pf !== 'function' ) {\n\t\t\tplural = getPluralExpression(\n\t\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t\t// @ts-ignore\n\t\t\t\tconfig.plural_forms\n\t\t\t);\n\n\t\t\tpf = pluralForms( plural );\n\t\t}\n\n\t\tgetPluralForm = this.pluralForms[ domain ] = pf;\n\t}\n\n\treturn getPluralForm( n );\n};\n\n/**\n * Translate a string.\n *\n * @param {string} domain Translation domain.\n * @param {string|void} context Context distinguishing terms of the same name.\n * @param {string} singular Primary key for translation lookup.\n * @param {string=} plural Fallback value used for non-zero plural\n * form index.\n * @param {number=} n Value to use in calculating plural form.\n *\n * @return {string} Translated string.\n */\nTannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) {\n\tvar index, key, entry;\n\n\tif ( n === undefined ) {\n\t\t// Default to singular.\n\t\tindex = 0;\n\t} else {\n\t\t// Find index by evaluating plural form for value.\n\t\tindex = this.getPluralForm( domain, n );\n\t}\n\n\tkey = singular;\n\n\t// If provided, context is prepended to key with delimiter.\n\tif ( context ) {\n\t\tkey = context + this.options.contextDelimiter + singular;\n\t}\n\n\tentry = this.data[ domain ][ key ];\n\n\t// Verify not only that entry exists, but that the intended index is within\n\t// range and non-empty.\n\tif ( entry && entry[ index ] ) {\n\t\treturn entry[ index ];\n\t}\n\n\tif ( this.options.onMissingKey ) {\n\t\tthis.options.onMissingKey( singular, domain );\n\t}\n\n\t// If entry not found, fall back to singular vs. plural with zero index\n\t// representing the singular value.\n\treturn index === 0 ? singular : plural;\n};\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { __ } from '@wordpress/i18n';\nimport frmStyleDependentUpdaterComponent from './components/dependent-updater-component';\n\n/**\n * Represents the frmStyleOptions class.\n * @class\n */\nclass frmStyleOptions {\n\tconstructor() {\n\t\tthis.success = frmDom.success;\n\t\tthis.init();\n\t\tthis.initHover();\n\t}\n\n\t/**\n\t * Init the dependent\n\t */\n\tinit() {\n\t\tthis.initColorPickerDependentUpdaterComponents();\n\t\tthis.initStyleClassCopyToClipboard( __( 'The class name has been copied.', 'formidable' ) );\n\t}\n\n\t/**\n\t * Initializes the color picker dependent updater components.\n\t * Retrieves the components and elements, and adds them to the elements array.\n\t * Adds an action hook for the frm_style_options_color_change event.\n\t */\n\tinitColorPickerDependentUpdaterComponents() {\n\t\tconst components = document.querySelectorAll( '.frm-style-dependent-updater-component.frm-colorpicker' );\n\t\tconst elements = [];\n\n\t\tcomponents.forEach( component => {\n\t\t\tconst element = component.querySelector( 'input.hex' );\n\t\t\tconst id = 'undefined' !== typeof element ? element.getAttribute( 'id' ) : null;\n\n\t\t\tif ( null !== id ) {\n\t\t\t\telements.push( {\n\t\t\t\t\tid: id,\n\t\t\t\t\tdependentUpdaterClass: new frmStyleDependentUpdaterComponent( component, 'colorpicker' )\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\twp.hooks.addAction( 'frm_style_options_color_change', 'formidable', ( { event, value } ) => {\n\t\t\tconst container = event.target.closest( '.wp-picker-container' );\n\t\t\tconst id = event.target.getAttribute( 'id' );\n\n\t\t\tcontainer.querySelector( '.wp-color-result-text' ).innerText = value;\n\n\t\t\telements.forEach( element => {\n\t\t\t\tif ( element.id === id ) {\n\t\t\t\t\telement.dependentUpdaterClass.updateAllDependentElements( value );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Initializes the hover functionality for the style options.\n\t * Creates a hover element and appends it to the settingsWrapper.\n\t * Adds event listeners for mouseover and click events.\n\t */\n\tinitHover() {\n\t\tconst settingsWrapper = document.querySelector( '.frm-right-panel .styling_settings .accordion-container' );\n\t\tif ( null === settingsWrapper ) {\n\t\t\treturn;\n\t\t}\n\t\tconst hoverElement = document.createElement( 'div' );\n\t\thoverElement.classList.add( 'frm_hidden' );\n\t\thoverElement.classList.add( 'frm-style-settings-hover' );\n\t\tsettingsWrapper.appendChild( hoverElement );\n\n\t\tconst styleOptionsMenu = settingsWrapper.querySelector( ':scope > ul' );\n\n\t\tstyleOptionsMenu.querySelectorAll( ':scope > li' ).forEach( item => {\n\t\t\titem.querySelector( 'h3' ).addEventListener( 'mouseover', event => {\n\t\t\t\thoverElement.style.transform = `translateY(${ event.target.closest( 'li' ).offsetTop }px)`;\n\t\t\t\thoverElement.classList.add( 'frm-animating' );\n\t\t\t\thoverElement.classList.remove( 'frm_hidden' );\n\t\t\t\tsetTimeout( () => {\n\t\t\t\t\thoverElement.classList.remove( 'frm-animating' );\n\t\t\t\t}, 250 );\n\t\t\t} );\n\t\t} );\n\n\t\tconst accordionitems = document.querySelectorAll( '#frm_style_sidebar .accordion-section h3' );\n\t\taccordionitems.forEach( item => {\n\t\t\titem.addEventListener( 'click', () => {\n\t\t\t\thoverElement.classList.add( 'frm_hidden' );\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Initializes the copy to clipboard functionality for style classes.\n\t * Adds a click event listener to the copyLabel element.\n\t * Copies the class name to the clipboard and displays a success message.\n\t * @param {string} successMessage - The success message to display.\n\t */\n\tinitStyleClassCopyToClipboard( successMessage ) {\n\t\tconst copyLabel = document.querySelector( '.frm-copy-text' );\n\t\tcopyLabel.addEventListener( 'click', event => {\n\t\t\tconst className = event.currentTarget.innerText;\n\t\t\tnavigator.clipboard.writeText( className ).then( () => {\n\t\t\t\tthis.success( successMessage );\n\t\t\t} );\n\t\t} );\n\t}\n}\n\nnew frmStyleOptions();\n"],"names":["frmStyleDependentUpdaterComponent","component","_classCallCheck","willChangeData","JSON","parse","dataset","willChange","data","propagateInputs","initPropagationList","changeEvent","Event","bubbles","error","console","_createClass","key","value","inputNames","list","forEach","name","input","document","querySelector","concat","push","updateAllDependentElements","dispatchEvent","default","__","frmStyleOptions","success","frmDom","init","initHover","initColorPickerDependentUpdaterComponents","initStyleClassCopyToClipboard","components","querySelectorAll","elements","element","id","getAttribute","dependentUpdaterClass","wp","hooks","addAction","_ref","event","container","target","closest","innerText","settingsWrapper","hoverElement","createElement","classList","add","appendChild","styleOptionsMenu","item","addEventListener","style","transform","offsetTop","remove","setTimeout","accordionitems","successMessage","_this","copyLabel","className","currentTarget","navigator","clipboard","writeText","then"],"sourceRoot":""} \ No newline at end of file +<<<<<<< HEAD +{"version":3,"file":"formidable_styles.js","mappings":";;;;;;;;;;;;;;;;AAAsC;AACE;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,aAAa,oBAAoB,MAAM;AACnD;AACe;AACf,aAAa,2DAAO;;AAEpB;AACA,SAAS,4DAAQ;AACjB;AACA;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB;AACA,YAAY,GAAG;AACf;AACe;AACf;AACA;;AAEA,cAAc,oBAAoB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AC7GsC;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf,gBAAgB,2DAAO;;AAEvB;AACA,sBAAsB,OAAO;AAC7B;AACA;;;;;;;;;;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;AC3HA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC;;AAEA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,SAAS,iEAAiB;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,QAAQ;;AAEzB;;AAEA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,kBAAkB;AAClB;;;AAGA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+DAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+DAAe,iBAAiB,EAAC;AACjC;;;;;;;;;;;;;ACpBA;AACA;AACA;AACqD;AACrD;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA;AACA;AACA;;AAEA,+DAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA,+DAAe,eAAe,EAAC;AAC/B;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA,+DAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;ACrCwE;;AAExE;AACA;AACA;AAC4C;AACM;AACN;AACA;AACQ;AACJ;AACJ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,EAAE,qFAAe;;AAEjB,aAAa,mBAAmB;AAChC;AACA;AACA,aAAa,mBAAmB;;AAEhC;AACA;AACA,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,sBAAsB,6DAAgB;AACtC,sBAAsB,6DAAgB;AACtC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC,0BAA0B,6DAAgB;AAC1C,0BAA0B,6DAAgB;AAC1C,kBAAkB,0DAAa;AAC/B,sBAAsB,0DAAa;AACnC,uBAAuB,8DAAiB;AACxC,uBAAuB,8DAAiB;AACxC,qBAAqB,4DAAe;AACpC,qBAAqB,4DAAe;AACpC,mBAAmB,0DAAa;AAChC,mBAAmB,0DAAa;AAChC;AACA,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA,+DAAe,WAAW,EAAC;AAC3B;;;;;;;;;;;;;;AC5DA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA,YAAY,oBAAoB;AAChC;;AAEA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA;AACA,YAAY,YAAY;AACxB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,uBAAuB,iEAAiB;AACxC;AACA,MAAM;;;AAGN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+DAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;AC3F8E;;AAE9E;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA;AACA,YAAY,kDAAkD;AAC9D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;;AAElD,QAAQ,IAAqC;AAC7C;AACA;AACA,sCAAsC,wFAAkB;AACxD;AACA;;AAEA,2FAA2F,aAAa;AACxG;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+DAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvEA;AACA;AACA;AACwC;AACxC,cAAc,uBAAuB;;AAErC;AACA;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA,cAAc,WAAW;AACzB,cAAc,WAAW;AACzB;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;;AAEA;AACA,aAAa,wBAAwB,uBAAuB;AAC5D;;AAEA;AACA,aAAa,uBAAuB;AACpC;;AAEA;AACA,aAAa,+BAA+B;AAC5C;;AAEO,mBAAmB,wDAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2P;AAC3P;;;;;;;;;;;;ACzDA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+DAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;AChCA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+DAAe,iBAAiB,EAAC;AACjC;;;;;;;;;;;;;;;;;ACzBwE;;AAExE,2CAA2C,gCAAgC,oCAAoC,oDAAoD,8DAA8D,iEAAiE,GAAG,kCAAkC;;AAEvU,iCAAiC,gBAAgB,sBAAsB,OAAO,uDAAuD,aAAa,uDAAuD,qFAAe,6BAA6B,KAAK,6CAA6C,6EAA6E,OAAO,iDAAiD,mFAAmF,OAAO;;AAEtgB;AACA;AACA;AAC4B;AAC5B;AACA,aAAa,oBAAoB;AACjC;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,iCAAiC;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8CAA8C;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8CAA8C;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,YAAY;;AAE1B,cAAc,YAAY;;AAE1B;AACA,aAAa,sDAAsD;AACnE;AACA;AACA;;AAEA;AACA,aAAa,6BAA6B;AAC1C;AACA;;AAEA;AACA,aAAa,2CAA2C;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,4DAA4D;AACzE;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,6EAA6E;AAC1F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8FAA8F;AAC3G;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,gEAAgE;AAC7E;AACA;AACA;;AAEA,cAAc,kCAAkC;;AAEhD;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,cAAc,eAAe;AAC7B;AACA,cAAc,iBAAiB;AAC/B;AACA,cAAc,WAAW;AACzB,cAAc,IAAI;AAClB,cAAc,IAAI;AAClB,cAAc,IAAI;AAClB;AACA,cAAc,KAAK;AACnB;AACA,cAAc,OAAO;AACrB,cAAc,gBAAgB;AAC9B;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,YAAY,4BAA4B;AACxC;;AAEO;AACP;AACA;AACA;AACA,YAAY;AACZ;AACA,mBAAmB,8CAAM,GAAG;AAC5B;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa,mBAAmB;AAChC,cAAc,qBAAqB;AACn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ACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C,cAAc,4BAA4B;AAC1C;AACA,cAAc,4BAA4B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,2BAA2B,eAAe;AAC1C,qBAAqB,iBAAiB;AACtC,cAAc,iBAAiB;AAC/B,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,KAA+B,GAAG,EAMtC;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACtKA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,IAA8B;AACtC,QAAQ,eAAkB;AAC1B,QAAQ,gBAAmB;AAC3B;AACA;AACA;AACA;;AAEA,YAAY,IAA6C;AACzD,YAAY,mCAAO;AACnB;AACA;AACA;AACA;AACA,aAAa;AAAA,kGAAC;AACd;AACA;AACA;AACA,CAAC,IAAI;;;;;;;;;;;;;;;;;ACtO0C;;AAE/C;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,gGAAgG;AAC9G;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,qCAAqC;AACnD;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA,qBAAqB;;AAErB,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,kBAAkB;AAC7B;AACe;AACf;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,gEAAW;AACnB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB;AACA,WAAW,aAAa;AACxB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpNA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;;ACJqD;AACrD;AACA,+BAA+B,gEAAgB;AAC/C;;;;;;;;;;;;;;;;ACHA;AAC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","sources":["webpack://formidable/./node_modules/@tannin/compile/index.js","webpack://formidable/./node_modules/@tannin/evaluate/index.js","webpack://formidable/./node_modules/@tannin/plural-forms/index.js","webpack://formidable/./node_modules/@tannin/postfix/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createAddHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createCurrentHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDidHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDoingHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHasHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHooks.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRemoveHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRunHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateHookName.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateNamespace.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/create-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/default-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/index.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/sprintf.js","webpack://formidable/./js/src/admin/styles/dependent-updater-component.js","webpack://formidable/./js/src/admin/styles/radio-style-component.js","webpack://formidable/./js/src/admin/styles/slider-style-component.js","webpack://formidable/./js/src/admin/styles/tabs-style-component.js","webpack://formidable/./js/src/components/class-tabs-navigator.js","webpack://formidable/./js/src/core/constants.js","webpack://formidable/./js/src/core/utils/animation.js","webpack://formidable/./js/src/core/utils/async.js","webpack://formidable/./js/src/core/utils/error.js","webpack://formidable/./js/src/core/utils/event.js","webpack://formidable/./js/src/core/utils/index.js","webpack://formidable/./js/src/core/utils/url.js","webpack://formidable/./js/src/core/utils/validation.js","webpack://formidable/./js/src/core/utils/visibility.js","webpack://formidable/./node_modules/memize/index.js","webpack://formidable/./node_modules/sprintf-js/src/sprintf.js","webpack://formidable/./node_modules/tannin/index.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://formidable/webpack/bootstrap","webpack://formidable/webpack/runtime/compat get default export","webpack://formidable/webpack/runtime/define property getters","webpack://formidable/webpack/runtime/hasOwnProperty shorthand","webpack://formidable/webpack/runtime/make namespace object","webpack://formidable/./js/src/admin/styles.js"],"sourcesContent":["import postfix from '@tannin/postfix';\nimport evaluate from '@tannin/evaluate';\n\n/**\n * Given a C expression, returns a function which can be called to evaluate its\n * result.\n *\n * @example\n *\n * ```js\n * import compile from '@tannin/compile';\n *\n * const evaluate = compile( 'n > 1' );\n *\n * evaluate( { n: 2 } );\n * // ⇒ true\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator.\n */\nexport default function compile( expression ) {\n\tvar terms = postfix( expression );\n\n\treturn function( variables ) {\n\t\treturn evaluate( terms, variables );\n\t};\n}\n","/**\n * Operator callback functions.\n *\n * @type {Object}\n */\nvar OPERATORS = {\n\t'!': function( a ) {\n\t\treturn ! a;\n\t},\n\t'*': function( a, b ) {\n\t\treturn a * b;\n\t},\n\t'/': function( a, b ) {\n\t\treturn a / b;\n\t},\n\t'%': function( a, b ) {\n\t\treturn a % b;\n\t},\n\t'+': function( a, b ) {\n\t\treturn a + b;\n\t},\n\t'-': function( a, b ) {\n\t\treturn a - b;\n\t},\n\t'<': function( a, b ) {\n\t\treturn a < b;\n\t},\n\t'<=': function( a, b ) {\n\t\treturn a <= b;\n\t},\n\t'>': function( a, b ) {\n\t\treturn a > b;\n\t},\n\t'>=': function( a, b ) {\n\t\treturn a >= b;\n\t},\n\t'==': function( a, b ) {\n\t\treturn a === b;\n\t},\n\t'!=': function( a, b ) {\n\t\treturn a !== b;\n\t},\n\t'&&': function( a, b ) {\n\t\treturn a && b;\n\t},\n\t'||': function( a, b ) {\n\t\treturn a || b;\n\t},\n\t'?:': function( a, b, c ) {\n\t\tif ( a ) {\n\t\t\tthrow b;\n\t\t}\n\n\t\treturn c;\n\t},\n};\n\n/**\n * Given an array of postfix terms and operand variables, returns the result of\n * the postfix evaluation.\n *\n * @example\n *\n * ```js\n * import evaluate from '@tannin/evaluate';\n *\n * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +'\n * const terms = [ '3', '4', '5', '*', '6', '/', '+' ];\n *\n * evaluate( terms, {} );\n * // ⇒ 6.333333333333334\n * ```\n *\n * @param {string[]} postfix Postfix terms.\n * @param {Object} variables Operand variables.\n *\n * @return {*} Result of evaluation.\n */\nexport default function evaluate( postfix, variables ) {\n\tvar stack = [],\n\t\ti, j, args, getOperatorResult, term, value;\n\n\tfor ( i = 0; i < postfix.length; i++ ) {\n\t\tterm = postfix[ i ];\n\n\t\tgetOperatorResult = OPERATORS[ term ];\n\t\tif ( getOperatorResult ) {\n\t\t\t// Pop from stack by number of function arguments.\n\t\t\tj = getOperatorResult.length;\n\t\t\targs = Array( j );\n\t\t\twhile ( j-- ) {\n\t\t\t\targs[ j ] = stack.pop();\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tvalue = getOperatorResult.apply( null, args );\n\t\t\t} catch ( earlyReturn ) {\n\t\t\t\treturn earlyReturn;\n\t\t\t}\n\t\t} else if ( variables.hasOwnProperty( term ) ) {\n\t\t\tvalue = variables[ term ];\n\t\t} else {\n\t\t\tvalue = +term;\n\t\t}\n\n\t\tstack.push( value );\n\t}\n\n\treturn stack[ 0 ];\n}\n","import compile from '@tannin/compile';\n\n/**\n * Given a C expression, returns a function which, when called with a value,\n * evaluates the result with the value assumed to be the \"n\" variable of the\n * expression. The result will be coerced to its numeric equivalent.\n *\n * @param {string} expression C expression.\n *\n * @return {Function} Evaluator function.\n */\nexport default function pluralForms( expression ) {\n\tvar evaluate = compile( expression );\n\n\treturn function( n ) {\n\t\treturn +evaluate( { n: n } );\n\t};\n}\n","var PRECEDENCE, OPENERS, TERMINATORS, PATTERN;\n\n/**\n * Operator precedence mapping.\n *\n * @type {Object}\n */\nPRECEDENCE = {\n\t'(': 9,\n\t'!': 8,\n\t'*': 7,\n\t'/': 7,\n\t'%': 7,\n\t'+': 6,\n\t'-': 6,\n\t'<': 5,\n\t'<=': 5,\n\t'>': 5,\n\t'>=': 5,\n\t'==': 4,\n\t'!=': 4,\n\t'&&': 3,\n\t'||': 2,\n\t'?': 1,\n\t'?:': 1,\n};\n\n/**\n * Characters which signal pair opening, to be terminated by terminators.\n *\n * @type {string[]}\n */\nOPENERS = [ '(', '?' ];\n\n/**\n * Characters which signal pair termination, the value an array with the\n * opener as its first member. The second member is an optional operator\n * replacement to push to the stack.\n *\n * @type {string[]}\n */\nTERMINATORS = {\n\t')': [ '(' ],\n\t':': [ '?', '?:' ],\n};\n\n/**\n * Pattern matching operators and openers.\n *\n * @type {RegExp}\n */\nPATTERN = /<=|>=|==|!=|&&|\\|\\||\\?:|\\(|!|\\*|\\/|%|\\+|-|<|>|\\?|\\)|:/;\n\n/**\n * Given a C expression, returns the equivalent postfix (Reverse Polish)\n * notation terms as an array.\n *\n * If a postfix string is desired, simply `.join( ' ' )` the result.\n *\n * @example\n *\n * ```js\n * import postfix from '@tannin/postfix';\n *\n * postfix( 'n > 1' );\n * // ⇒ [ 'n', '1', '>' ]\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {string[]} Postfix terms.\n */\nexport default function postfix( expression ) {\n\tvar terms = [],\n\t\tstack = [],\n\t\tmatch, operator, term, element;\n\n\twhile ( ( match = expression.match( PATTERN ) ) ) {\n\t\toperator = match[ 0 ];\n\n\t\t// Term is the string preceding the operator match. It may contain\n\t\t// whitespace, and may be empty (if operator is at beginning).\n\t\tterm = expression.substr( 0, match.index ).trim();\n\t\tif ( term ) {\n\t\t\tterms.push( term );\n\t\t}\n\n\t\twhile ( ( element = stack.pop() ) ) {\n\t\t\tif ( TERMINATORS[ operator ] ) {\n\t\t\t\tif ( TERMINATORS[ operator ][ 0 ] === element ) {\n\t\t\t\t\t// Substitution works here under assumption that because\n\t\t\t\t\t// the assigned operator will no longer be a terminator, it\n\t\t\t\t\t// will be pushed to the stack during the condition below.\n\t\t\t\t\toperator = TERMINATORS[ operator ][ 1 ] || operator;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) {\n\t\t\t\t// Push to stack if either an opener or when pop reveals an\n\t\t\t\t// element of lower precedence.\n\t\t\t\tstack.push( element );\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// For each popped from stack, push to terms.\n\t\t\tterms.push( element );\n\t\t}\n\n\t\tif ( ! TERMINATORS[ operator ] ) {\n\t\t\tstack.push( operator );\n\t\t}\n\n\t\t// Slice matched fragment from expression to continue match.\n\t\texpression = expression.substr( match.index + operator.length );\n\t}\n\n\t// Push remainder of operand, if exists, to terms.\n\texpression = expression.trim();\n\tif ( expression ) {\n\t\tterms.push( expression );\n\t}\n\n\t// Pop remaining items from stack into terms.\n\treturn terms.concat( stack.reverse() );\n}\n","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback AddHook\n *\n * Adds the hook to the appropriate hooks container.\n *\n * @param {string} hookName Name of hook to add\n * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.\n * @param {import('.').Callback} callback Function to call when the hook is run\n * @param {number} [priority=10] Priority of this hook\n */\n\n/**\n * Returns a function which, when invoked, will add a hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {AddHook} Function that adds a new hook.\n */\n\nfunction createAddHook(hooks, storeKey) {\n return function addHook(hookName, namespace, callback) {\n var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!validateNamespace(namespace)) {\n return;\n }\n\n if ('function' !== typeof callback) {\n // eslint-disable-next-line no-console\n console.error('The hook callback must be a function.');\n return;\n } // Validate numeric priority\n\n\n if ('number' !== typeof priority) {\n // eslint-disable-next-line no-console\n console.error('If specified, the hook priority must be a number.');\n return;\n }\n\n var handler = {\n callback: callback,\n priority: priority,\n namespace: namespace\n };\n\n if (hooksStore[hookName]) {\n // Find the correct insert index of the new hook.\n var handlers = hooksStore[hookName].handlers;\n /** @type {number} */\n\n var i;\n\n for (i = handlers.length; i > 0; i--) {\n if (priority >= handlers[i - 1].priority) {\n break;\n }\n }\n\n if (i === handlers.length) {\n // If append, operate via direct assignment.\n handlers[i] = handler;\n } else {\n // Otherwise, insert before index via splice.\n handlers.splice(i, 0, handler);\n } // We may also be currently executing this hook. If the callback\n // we're adding would come after the current callback, there's no\n // problem; otherwise we need to increase the execution index of\n // any other runs by 1 to account for the added element.\n\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex++;\n }\n });\n } else {\n // This is the first hook of its type.\n hooksStore[hookName] = {\n handlers: [handler],\n runs: 0\n };\n }\n\n if (hookName !== 'hookAdded') {\n hooks.doAction('hookAdded', hookName, namespace, callback, priority);\n }\n };\n}\n\nexport default createAddHook;\n//# sourceMappingURL=createAddHook.js.map","/**\n * Returns a function which, when invoked, will return the name of the\n * currently running hook, or `null` if no hook of the given type is currently\n * running.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {() => string | null} Function that returns the current hook name or null.\n */\nfunction createCurrentHook(hooks, storeKey) {\n return function currentHook() {\n var _hooksStore$__current, _hooksStore$__current2;\n\n var hooksStore = hooks[storeKey];\n return (_hooksStore$__current = (_hooksStore$__current2 = hooksStore.__current[hooksStore.__current.length - 1]) === null || _hooksStore$__current2 === void 0 ? void 0 : _hooksStore$__current2.name) !== null && _hooksStore$__current !== void 0 ? _hooksStore$__current : null;\n };\n}\n\nexport default createCurrentHook;\n//# sourceMappingURL=createCurrentHook.js.map","/**\n * Internal dependencies\n */\nimport validateHookName from './validateHookName.js';\n/**\n * @callback DidHook\n *\n * Returns the number of times an action has been fired.\n *\n * @param {string} hookName The hook name to check.\n *\n * @return {number | undefined} The number of times the hook has run.\n */\n\n/**\n * Returns a function which, when invoked, will return the number of times a\n * hook has been called.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DidHook} Function that returns a hook's call count.\n */\n\nfunction createDidHook(hooks, storeKey) {\n return function didHook(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0;\n };\n}\n\nexport default createDidHook;\n//# sourceMappingURL=createDidHook.js.map","/**\n * @callback DoingHook\n * Returns whether a hook is currently being executed.\n *\n * @param {string} [hookName] The name of the hook to check for. If\n * omitted, will check for any hook being executed.\n *\n * @return {boolean} Whether the hook is being executed.\n */\n\n/**\n * Returns a function which, when invoked, will return whether a hook is\n * currently being executed.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DoingHook} Function that returns whether a hook is currently\n * being executed.\n */\nfunction createDoingHook(hooks, storeKey) {\n return function doingHook(hookName) {\n var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook.\n\n if ('undefined' === typeof hookName) {\n return 'undefined' !== typeof hooksStore.__current[0];\n } // Return the __current hook.\n\n\n return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false;\n };\n}\n\nexport default createDoingHook;\n//# sourceMappingURL=createDoingHook.js.map","/**\n * @callback HasHook\n *\n * Returns whether any handlers are attached for the given hookName and optional namespace.\n *\n * @param {string} hookName The name of the hook to check for.\n * @param {string} [namespace] Optional. The unique namespace identifying the callback\n * in the form `vendor/plugin/function`.\n *\n * @return {boolean} Whether there are handlers that are attached to the given hook.\n */\n\n/**\n * Returns a function which, when invoked, will return whether any handlers are\n * attached to a particular hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {HasHook} Function that returns whether any handlers are\n * attached to a particular hook and optional namespace.\n */\nfunction createHasHook(hooks, storeKey) {\n return function hasHook(hookName, namespace) {\n var hooksStore = hooks[storeKey]; // Use the namespace if provided.\n\n if ('undefined' !== typeof namespace) {\n return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) {\n return hook.namespace === namespace;\n });\n }\n\n return hookName in hooksStore;\n };\n}\n\nexport default createHasHook;\n//# sourceMappingURL=createHasHook.js.map","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\n\n/**\n * Internal dependencies\n */\nimport createAddHook from './createAddHook';\nimport createRemoveHook from './createRemoveHook';\nimport createHasHook from './createHasHook';\nimport createRunHook from './createRunHook';\nimport createCurrentHook from './createCurrentHook';\nimport createDoingHook from './createDoingHook';\nimport createDidHook from './createDidHook';\n/**\n * Internal class for constructing hooks. Use `createHooks()` function\n *\n * Note, it is necessary to expose this class to make its type public.\n *\n * @private\n */\n\nexport var _Hooks = function _Hooks() {\n _classCallCheck(this, _Hooks);\n\n /** @type {import('.').Store} actions */\n this.actions = Object.create(null);\n this.actions.__current = [];\n /** @type {import('.').Store} filters */\n\n this.filters = Object.create(null);\n this.filters.__current = [];\n this.addAction = createAddHook(this, 'actions');\n this.addFilter = createAddHook(this, 'filters');\n this.removeAction = createRemoveHook(this, 'actions');\n this.removeFilter = createRemoveHook(this, 'filters');\n this.hasAction = createHasHook(this, 'actions');\n this.hasFilter = createHasHook(this, 'filters');\n this.removeAllActions = createRemoveHook(this, 'actions', true);\n this.removeAllFilters = createRemoveHook(this, 'filters', true);\n this.doAction = createRunHook(this, 'actions');\n this.applyFilters = createRunHook(this, 'filters', true);\n this.currentAction = createCurrentHook(this, 'actions');\n this.currentFilter = createCurrentHook(this, 'filters');\n this.doingAction = createDoingHook(this, 'actions');\n this.doingFilter = createDoingHook(this, 'filters');\n this.didAction = createDidHook(this, 'actions');\n this.didFilter = createDidHook(this, 'filters');\n};\n/** @typedef {_Hooks} Hooks */\n\n/**\n * Returns an instance of the hooks object.\n *\n * @return {Hooks} A Hooks instance.\n */\n\nfunction createHooks() {\n return new _Hooks();\n}\n\nexport default createHooks;\n//# sourceMappingURL=createHooks.js.map","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback RemoveHook\n * Removes the specified callback (or all callbacks) from the hook with a given hookName\n * and namespace.\n *\n * @param {string} hookName The name of the hook to modify.\n * @param {string} namespace The unique namespace identifying the callback in the\n * form `vendor/plugin/function`.\n *\n * @return {number | undefined} The number of callbacks removed.\n */\n\n/**\n * Returns a function which, when invoked, will remove a specified hook or all\n * hooks by the given name.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName,\n * without regard to namespace. Used to create\n * `removeAll*` functions.\n *\n * @return {RemoveHook} Function that removes hooks.\n */\n\nfunction createRemoveHook(hooks, storeKey) {\n var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function removeHook(hookName, namespace) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!removeAll && !validateNamespace(namespace)) {\n return;\n } // Bail if no hooks exist by this name\n\n\n if (!hooksStore[hookName]) {\n return 0;\n }\n\n var handlersRemoved = 0;\n\n if (removeAll) {\n handlersRemoved = hooksStore[hookName].handlers.length;\n hooksStore[hookName] = {\n runs: hooksStore[hookName].runs,\n handlers: []\n };\n } else {\n // Try to find the specified callback to remove.\n var handlers = hooksStore[hookName].handlers;\n\n var _loop = function _loop(i) {\n if (handlers[i].namespace === namespace) {\n handlers.splice(i, 1);\n handlersRemoved++; // This callback may also be part of a hook that is\n // currently executing. If the callback we're removing\n // comes after the current callback, there's no problem;\n // otherwise we need to decrease the execution index of any\n // other runs by 1 to account for the removed element.\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex--;\n }\n });\n }\n };\n\n for (var i = handlers.length - 1; i >= 0; i--) {\n _loop(i);\n }\n }\n\n if (hookName !== 'hookRemoved') {\n hooks.doAction('hookRemoved', hookName, namespace);\n }\n\n return handlersRemoved;\n };\n}\n\nexport default createRemoveHook;\n//# sourceMappingURL=createRemoveHook.js.map","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\n\n/**\n * Returns a function which, when invoked, will execute all callbacks\n * registered to a hook of the specified type, optionally returning the final\n * value of the call chain.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to\n * return its first argument.\n *\n * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks.\n */\nfunction createRunHook(hooks, storeKey) {\n var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function runHooks(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!hooksStore[hookName]) {\n hooksStore[hookName] = {\n handlers: [],\n runs: 0\n };\n }\n\n hooksStore[hookName].runs++;\n var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds.\n\n if ('production' !== process.env.NODE_ENV) {\n // Handle any 'all' hooks registered.\n if ('hookAdded' !== hookName && hooksStore.all) {\n handlers.push.apply(handlers, _toConsumableArray(hooksStore.all.handlers));\n }\n }\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!handlers || !handlers.length) {\n return returnFirstArg ? args[0] : undefined;\n }\n\n var hookInfo = {\n name: hookName,\n currentIndex: 0\n };\n\n hooksStore.__current.push(hookInfo);\n\n while (hookInfo.currentIndex < handlers.length) {\n var handler = handlers[hookInfo.currentIndex];\n var result = handler.callback.apply(null, args);\n\n if (returnFirstArg) {\n args[0] = result;\n }\n\n hookInfo.currentIndex++;\n }\n\n hooksStore.__current.pop();\n\n if (returnFirstArg) {\n return args[0];\n }\n };\n}\n\nexport default createRunHook;\n//# sourceMappingURL=createRunHook.js.map","/**\n * Internal dependencies\n */\nimport createHooks from './createHooks';\n/** @typedef {(...args: any[])=>any} Callback */\n\n/**\n * @typedef Handler\n * @property {Callback} callback The callback\n * @property {string} namespace The namespace\n * @property {number} priority The namespace\n */\n\n/**\n * @typedef Hook\n * @property {Handler[]} handlers Array of handlers\n * @property {number} runs Run counter\n */\n\n/**\n * @typedef Current\n * @property {string} name Hook name\n * @property {number} currentIndex The index\n */\n\n/**\n * @typedef {Record & {__current: Current[]}} Store\n */\n\n/**\n * @typedef {'actions' | 'filters'} StoreKey\n */\n\n/**\n * @typedef {import('./createHooks').Hooks} Hooks\n */\n\nexport var defaultHooks = createHooks();\nvar addAction = defaultHooks.addAction,\n addFilter = defaultHooks.addFilter,\n removeAction = defaultHooks.removeAction,\n removeFilter = defaultHooks.removeFilter,\n hasAction = defaultHooks.hasAction,\n hasFilter = defaultHooks.hasFilter,\n removeAllActions = defaultHooks.removeAllActions,\n removeAllFilters = defaultHooks.removeAllFilters,\n doAction = defaultHooks.doAction,\n applyFilters = defaultHooks.applyFilters,\n currentAction = defaultHooks.currentAction,\n currentFilter = defaultHooks.currentFilter,\n doingAction = defaultHooks.doingAction,\n doingFilter = defaultHooks.doingFilter,\n didAction = defaultHooks.didAction,\n didFilter = defaultHooks.didFilter,\n actions = defaultHooks.actions,\n filters = defaultHooks.filters;\nexport { createHooks, addAction, addFilter, removeAction, removeFilter, hasAction, hasFilter, removeAllActions, removeAllFilters, doAction, applyFilters, currentAction, currentFilter, doingAction, doingFilter, didAction, didFilter, actions, filters };\n//# sourceMappingURL=index.js.map","/**\n * Validate a hookName string.\n *\n * @param {string} hookName The hook name to validate. Should be a non empty string containing\n * only numbers, letters, dashes, periods and underscores. Also,\n * the hook name cannot begin with `__`.\n *\n * @return {boolean} Whether the hook name is valid.\n */\nfunction validateHookName(hookName) {\n if ('string' !== typeof hookName || '' === hookName) {\n // eslint-disable-next-line no-console\n console.error('The hook name must be a non-empty string.');\n return false;\n }\n\n if (/^__/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name cannot begin with `__`.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.');\n return false;\n }\n\n return true;\n}\n\nexport default validateHookName;\n//# sourceMappingURL=validateHookName.js.map","/**\n * Validate a namespace string.\n *\n * @param {string} namespace The namespace to validate - should take the form\n * `vendor/plugin/function`.\n *\n * @return {boolean} Whether the namespace is valid.\n */\nfunction validateNamespace(namespace) {\n if ('string' !== typeof namespace || '' === namespace) {\n // eslint-disable-next-line no-console\n console.error('The namespace must be a non-empty string.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.\\-\\/]*$/.test(namespace)) {\n // eslint-disable-next-line no-console\n console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.');\n return false;\n }\n\n return true;\n}\n\nexport default validateNamespace;\n//# sourceMappingURL=validateNamespace.js.map","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\nimport Tannin from 'tannin';\n/**\n * @typedef {Record} LocaleData\n */\n\n/**\n * Default locale data to use for Tannin domain when not otherwise provided.\n * Assumes an English plural forms expression.\n *\n * @type {LocaleData}\n */\n\nvar DEFAULT_LOCALE_DATA = {\n '': {\n /** @param {number} n */\n plural_forms: function plural_forms(n) {\n return n === 1 ? 0 : 1;\n }\n }\n};\n/*\n * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`,\n * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`.\n */\n\nvar I18N_HOOK_REGEXP = /^i18n\\.(n?gettext|has_translation)(_|$)/;\n/**\n * @typedef {(domain?: string) => LocaleData} GetLocaleData\n *\n * Returns locale data by domain in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData\n *\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData\n *\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/** @typedef {() => void} SubscribeCallback */\n\n/** @typedef {() => void} UnsubscribeCallback */\n\n/**\n * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe\n *\n * Subscribes to changes of locale data\n */\n\n/**\n * @typedef {(domain?: string) => string} GetFilterDomain\n * Retrieve the domain to use when calling domain-specific filters.\n */\n\n/**\n * @typedef {(text: string, domain?: string) => string} __\n *\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n */\n\n/**\n * @typedef {(text: string, context: string, domain?: string) => string} _x\n *\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n */\n\n/**\n * @typedef {() => boolean} IsRtl\n *\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n */\n\n/**\n * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation\n *\n * Check if there is a translation for a given string in singular form.\n */\n\n/** @typedef {import('@wordpress/hooks').Hooks} Hooks */\n\n/**\n * An i18n instance\n *\n * @typedef I18n\n * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape.\n * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data.\n * @property {__} __ Retrieve the translation of text.\n * @property {_x} _x Retrieve translated string with gettext context.\n * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied\n * number.\n * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n * @property {IsRtl} isRTL Check if current locale is RTL.\n * @property {HasTranslation} hasTranslation Check if there is a translation for a given string.\n */\n\n/**\n * Create an i18n instance\n *\n * @param {LocaleData} [initialData] Locale data configuration.\n * @param {string} [initialDomain] Domain for which configuration applies.\n * @param {Hooks} [hooks] Hooks implementation.\n * @return {I18n} I18n instance\n */\n\nexport var createI18n = function createI18n(initialData, initialDomain, hooks) {\n /**\n * The underlying instance of Tannin to which exported functions interface.\n *\n * @type {Tannin}\n */\n var tannin = new Tannin({});\n var listeners = new Set();\n\n var notifyListeners = function notifyListeners() {\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n /**\n * Subscribe to changes of locale data.\n *\n * @param {SubscribeCallback} callback Subscription callback.\n * @return {UnsubscribeCallback} Unsubscribe callback.\n */\n\n\n var subscribe = function subscribe(callback) {\n listeners.add(callback);\n return function () {\n return listeners.delete(callback);\n };\n };\n /** @type {GetLocaleData} */\n\n\n var getLocaleData = function getLocaleData() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return tannin.data[domain];\n };\n /**\n * @param {LocaleData} [data]\n * @param {string} [domain]\n */\n\n\n var doSetLocaleData = function doSetLocaleData(data) {\n var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits\n // a plural forms expression).\n\n tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']);\n };\n /** @type {SetLocaleData} */\n\n\n var setLocaleData = function setLocaleData(data, domain) {\n doSetLocaleData(data, domain);\n notifyListeners();\n };\n /** @type {ResetLocaleData} */\n\n\n var resetLocaleData = function resetLocaleData(data, domain) {\n // Reset all current Tannin locale data.\n tannin.data = {}; // Reset cached plural forms functions cache.\n\n tannin.pluralForms = {};\n setLocaleData(data, domain);\n };\n /**\n * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not\n * otherwise previously assigned.\n *\n * @param {string|undefined} domain Domain to retrieve the translated text.\n * @param {string|undefined} context Context information for the translators.\n * @param {string} single Text to translate if non-plural. Used as\n * fallback return value on a caught error.\n * @param {string} [plural] The text to be used if the number is\n * plural.\n * @param {number} [number] The number to compare against to use\n * either the singular or plural form.\n *\n * @return {string} The translated string.\n */\n\n\n var dcnpgettext = function dcnpgettext() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n var context = arguments.length > 1 ? arguments[1] : undefined;\n var single = arguments.length > 2 ? arguments[2] : undefined;\n var plural = arguments.length > 3 ? arguments[3] : undefined;\n var number = arguments.length > 4 ? arguments[4] : undefined;\n\n if (!tannin.data[domain]) {\n // use `doSetLocaleData` to set silently, without notifying listeners\n doSetLocaleData(undefined, domain);\n }\n\n return tannin.dcnpgettext(domain, context, single, plural, number);\n };\n /** @type {GetFilterDomain} */\n\n\n var getFilterDomain = function getFilterDomain() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return domain;\n };\n /** @type {__} */\n\n\n var __ = function __(text, domain) {\n var translation = dcnpgettext(domain, undefined, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext', translation, text, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain)\n );\n };\n /** @type {_x} */\n\n\n var _x = function _x(text, context, domain) {\n var translation = dcnpgettext(domain, context, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation based on context information.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain)\n );\n };\n /** @type {_n} */\n\n\n var _n = function _n(single, plural, number, domain) {\n var translation = dcnpgettext(domain, undefined, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain)\n );\n };\n /** @type {_nx} */\n\n\n var _nx = function _nx(single, plural, number, context, domain) {\n var translation = dcnpgettext(domain, context, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string with gettext context.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain)\n );\n };\n /** @type {IsRtl} */\n\n\n var isRTL = function isRTL() {\n return 'rtl' === _x('ltr', 'text direction');\n };\n /** @type {HasTranslation} */\n\n\n var hasTranslation = function hasTranslation(single, context, domain) {\n var _tannin$data, _tannin$data2;\n\n var key = context ? context + \"\\x04\" + single : single;\n var result = !!((_tannin$data = tannin.data) !== null && _tannin$data !== void 0 && (_tannin$data2 = _tannin$data[domain !== null && domain !== void 0 ? domain : 'default']) !== null && _tannin$data2 !== void 0 && _tannin$data2[key]);\n\n if (hooks) {\n /**\n * Filters the presence of a translation in the locale data.\n *\n * @param {boolean} hasTranslation Whether the translation is present or not..\n * @param {string} single The singular form of the translated text (used as key in locale data)\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation', result, single, context, domain);\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain);\n }\n\n return result;\n };\n\n if (initialData) {\n setLocaleData(initialData, initialDomain);\n }\n\n if (hooks) {\n /**\n * @param {string} hookName\n */\n var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) {\n if (I18N_HOOK_REGEXP.test(hookName)) {\n notifyListeners();\n }\n };\n\n hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved);\n hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved);\n }\n\n return {\n getLocaleData: getLocaleData,\n setLocaleData: setLocaleData,\n resetLocaleData: resetLocaleData,\n subscribe: subscribe,\n __: __,\n _x: _x,\n _n: _n,\n _nx: _nx,\n isRTL: isRTL,\n hasTranslation: hasTranslation\n };\n};\n//# sourceMappingURL=create-i18n.js.map","/**\n * Internal dependencies\n */\nimport { createI18n } from './create-i18n';\n/**\n * WordPress dependencies\n */\n\nimport { defaultHooks } from '@wordpress/hooks';\nvar i18n = createI18n(undefined, undefined, defaultHooks);\n/**\n * Default, singleton instance of `I18n`.\n */\n\nexport default i18n;\n/*\n * Comments in this file are duplicated from ./i18n due to\n * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722\n */\n\n/**\n * @typedef {import('./create-i18n').LocaleData} LocaleData\n * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback\n * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback\n */\n\n/**\n * Returns locale data by domain in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {string} [domain] Domain for which to get the data.\n * @return {LocaleData} Locale data.\n */\n\nexport var getLocaleData = i18n.getLocaleData.bind(i18n);\n/**\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var setLocaleData = i18n.setLocaleData.bind(i18n);\n/**\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var resetLocaleData = i18n.resetLocaleData.bind(i18n);\n/**\n * Subscribes to changes of locale data\n *\n * @param {SubscribeCallback} callback Subscription callback\n * @return {UnsubscribeCallback} Unsubscribe callback\n */\n\nexport var subscribe = i18n.subscribe.bind(i18n);\n/**\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n *\n * @param {string} text Text to translate.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated text.\n */\n\nexport var __ = i18n.__.bind(i18n);\n/**\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n *\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated context string without pipe.\n */\n\nexport var _x = i18n._x.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _n = i18n._n.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _nx = i18n._nx.bind(i18n);\n/**\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n *\n * @return {boolean} Whether locale is RTL.\n */\n\nexport var isRTL = i18n.isRTL.bind(i18n);\n/**\n * Check if there is a translation for a given string (in singular form).\n *\n * @param {string} single Singular form of the string to look up.\n * @param {string} [context] Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n * @return {boolean} Whether the translation exists or not.\n */\n\nexport var hasTranslation = i18n.hasTranslation.bind(i18n);\n//# sourceMappingURL=default-i18n.js.map","export { sprintf } from './sprintf';\nexport * from './create-i18n';\nexport { default as defaultI18n, setLocaleData, resetLocaleData, getLocaleData, subscribe, __, _x, _n, _nx, isRTL, hasTranslation } from './default-i18n';\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\nimport memoize from 'memize';\nimport sprintfjs from 'sprintf-js';\n/**\n * Log to console, once per message; or more precisely, per referentially equal\n * argument set. Because Jed throws errors, we log these to the console instead\n * to avoid crashing the application.\n *\n * @param {...*} args Arguments to pass to `console.error`\n */\n\nvar logErrorOnce = memoize(console.error); // eslint-disable-line no-console\n\n/**\n * Returns a formatted string. If an error occurs in applying the format, the\n * original format string is returned.\n *\n * @param {string} format The format of the string to generate.\n * @param {...*} args Arguments to apply to the format.\n *\n * @see https://www.npmjs.com/package/sprintf-js\n *\n * @return {string} The formatted string.\n */\n\nexport function sprintf(format) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return sprintfjs.sprintf.apply(sprintfjs, [format].concat(args));\n } catch (error) {\n logErrorOnce('sprintf error: \\n\\n' + error.toString());\n return format;\n }\n}\n//# sourceMappingURL=sprintf.js.map","/**\n * This component updates the dependent style element's values and triggers a custom change event for each style element, initiating the style preview.\n * The names of the elements that will be updated are specified using the \"will-change\" attribute.\n * It is primarily used in components from Style/Quick Settings.\n * For instance, when the \"FrmPrimaryColorStyleComponent\" is changed, it simultaneously updates various style elements like border color, text color, and button backgrounds.\n */\nexport default class frmStyleDependentUpdaterComponent {\n\n\t/**\n\t * Creates an instance of frmStyleDependentUpdaterComponent.\n\t * @param {HTMLElement} component - The component element.\n\t */\n\tconstructor( component ) {\n\t\tthis.component = component;\n\t\ttry {\n\t\t\tconst willChangeData = JSON.parse( this.component.dataset.willChange );\n\t\t\tthis.data = {\n\t\t\t\tpropagateInputs: this.initPropagationList( willChangeData ),\n\t\t\t\tchangeEvent: new Event( 'change', { bubbles: true } )\n\t\t\t};\n\t\t} catch ( error ) {\n\t\t\tconsole.error( 'Error parsing JSON data from \"will-change\" attribute.', error );\n\t\t}\n\t}\n\n\t/**\n\t * Initializes the list of inputs to propagate changes to.\n\t * The selection is made by provided input's names list in \"will-change\" attribute.\n\t * @param {string[]} inputNames - The names of the inputs to propagate changes to.\n\t * @return {HTMLElement[]} - The list of inputs to propagate changes to.\n\t */\n\tinitPropagationList( inputNames ) {\n\t\tconst list = [];\n\t\tinputNames.forEach( ( name ) => {\n\t\t\tconst input = document.querySelector( `input[name=\"${name}\"]` );\n\t\t\tif ( null !== input ) {\n\t\t\t\tlist.push( input );\n\t\t\t}\n\t\t});\n\t\treturn list;\n\t}\n\n\t/**\n\t * Updates all dependent elements with the given value.\n\t * @param {string} value - The value to update the dependent elements with.\n\t */\n\tupdateAllDependentElements( value ) {\n\t\tthis.data.propagateInputs.forEach( ( input ) => {\n\t\t\tinput.value = value;\n\t\t});\n\t\tthis.data.propagateInputs[0].dispatchEvent( this.data.changeEvent );\n\t}\n}","import { show, hide } from 'core/utils';\n\n/**\n * Represents a radio style component.\n * @class\n */\nexport default class frmRadioStyleComponent {\n\n\tconstructor() {\n\t\tthis.radioElements = document.querySelectorAll( '.frm-style-component.frm-radio-component' );\n\t\tif ( 0 < this.radioElements.length ) {\n\t\t\tthis.init();\n\t\t}\n\t}\n\n\t/**\n\t * Initializes the radio style component.\n\t */\n\tinit() {\n\t\tthis.radioElements.forEach( ( element ) => {\n\t\t\tthis.initOnRadioChange( element );\n\t\t});\n\t\tthis.initTrackerOnAccordionClick();\n\t}\n\n\tinitTrackerOnAccordionClick() {\n\t\tconst accordionitems = document.querySelectorAll( '#frm_style_sidebar .accordion-section h3' );\n\n\t\taccordionitems.forEach( ( accordionitem ) => {\n\t\t\taccordionitem.addEventListener( 'click', ( event ) => {\n\t\t\t\tconst wrapper = event.target.closest( '.accordion-section' );\n\t\t\t\tconst radioButtons = wrapper.querySelectorAll( '.frm-style-component.frm-radio-component input[type=\"radio\"]:checked' );\n\n\t\t\t\tradioButtons.forEach( ( radio ) => {\n\t\t\t\t\tsetTimeout( () => this.onRadioChange( radio ), 200 );\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the onRadioChange event for the given wrapper.\n\t * @param {HTMLElement} radioElement - The radio element.\n\t */\n\tinitOnRadioChange( radioElement ) {\n\t\tradioElement.querySelectorAll( 'input[type=\"radio\"]' ).forEach( ( radio ) => {\n\t\t\tif ( radio.checked ) {\n\t\t\t\tthis.onRadioChange( radio );\n\t\t\t}\n\t\t\tradio.addEventListener( 'change', ( event ) => {\n\t\t\t\tthis.onRadioChange( event.target );\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Handles the onRadioChange event for the given wrapper.\n\t * @param {HTMLElement} target - The active radio button.\n\t */\n\tonRadioChange( target ) {\n\t\tconst wrapper = target.closest( '.frm-style-component.frm-radio-component' );\n\t\tconst activeItem = wrapper.querySelector( 'input[type=\"radio\"]:checked + label' );\n\n\t\tif ( null === activeItem ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.moveTracker( activeItem, wrapper );\n\t\tthis.hideExtraElements( target );\n\t\tthis.maybeShowExtraElements( target );\n\t}\n\n\t/**\n\t * Display additional elements related to the selected radio option.\n\t * @param {HTMLElement} radio - The radio button element.\n\t */\n\tmaybeShowExtraElements( radio ) {\n\t\tconst elementAttr = radio.getAttribute( 'data-frm-show-element' );\n\t\tif ( null === elementAttr ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst elements = document.querySelectorAll( `div[data-frm-element=\"${elementAttr}\"]` );\n\n\t\tif ( 0 === elements.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\telements.forEach( ( element ) => {\n\t\t\tshow( element );\n\t\t\telement.classList.add( 'frm-element-is-visible' );\n\t\t});\n\t}\n\n\t/**\n\t * Hide the possible opepend extra elements.\n\t */\n\thideExtraElements() {\n\t\tconst elements = document.querySelectorAll( '.frm-element-is-visible' );\n\t\tif ( 0 === elements.length ) {\n\t\t\treturn;\n\t\t}\n\t\telements.forEach( ( element ) => {\n\t\t\telement.classList.remove( 'frm-element-is-visible' );\n\t\t\telement.classList.add( 'frm_hidden' );\n\t\t\thide( element );\n\t\t});\n\t}\n\n\t/**\n\t * Moves the tracker to the active item.\n\t * @param {HTMLElement} activeItem - The active item element.\n\t * @param {HTMLElement} wrapper - The wrapper element.\n\t */\n\tmoveTracker( activeItem, wrapper ) {\n\t\tconst offset = activeItem.offsetLeft;\n\t\tconst width = activeItem.offsetWidth;\n\t\tconst tracker = wrapper.querySelector( '.frm-radio-active-tracker' );\n\n\t\ttracker.style.left = 0;\n\t\ttracker.style.width = `${width}px`;\n\t\ttracker.style.transform = `translateX(${ offset }px)`;\n\t}\n}\n","import frmStyleDependentUpdaterComponent from './dependent-updater-component';\n/**\n * Represents a slider style component.\n * @class frmSliderStyleComponent\n */\nexport default class frmSliderStyleComponent {\n\n\tconstructor() {\n\t\tthis.sliderElements = document.querySelectorAll( '.frm-slider-component' );\n\t\tif ( 0 === this.sliderElements.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// The slider bullet point width in pixels. Used in value calculation on drag event.\n\t\tthis.sliderBulletWidth = 16;\n\t\tthis.sliderMarginRight = 5;\n\t\tthis.eventsChange = [];\n\n\t\tconst { debounce } = frmDom.util;\n\t\tthis.valueChangeDebouncer = debounce( ( index ) => this.triggerValueChange( index ), 25 );\n\n\t\tthis.initOptions();\n\t\tthis.init();\n\t}\n\n\t/**\n\t * Initializes the options for the slider style component.\n\t */\n\tinitOptions() {\n\t\tthis.options = [];\n\t\tthis.sliderElements.forEach( ( element, index ) => {\n\t\t\tconst parentWrapper = element.classList.contains( 'frm-has-multiple-values' ) ? element.closest( '.frm-style-component' ) : element;\n\t\t\tthis.options.push({\n\t\t\t\tdragging: false,\n\t\t\t\tstartX: 0,\n\t\t\t\ttranslateX: 0,\n\t\t\t\tmaxValue: parseInt( element.dataset.maxValue, 10 ),\n\t\t\t\telement: element,\n\t\t\t\tindex: index,\n\t\t\t\tvalue: 0,\n\t\t\t\tdependentUpdater: parentWrapper.classList.contains( 'frm-style-dependent-updater-component' ) ? new frmStyleDependentUpdaterComponent( parentWrapper ) : null\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the slider style component.\n\t */\n\tinit() {\n\t\tthis.initSlidersPosition();\n\t\tthis.initDraggable();\n\t}\n\n\t/**\n\t * Initializes the draggable functionality for the slider style component.\n\t */\n\tinitDraggable() {\n\t\tthis.sliderElements.forEach( ( element, index ) => {\n\t\t\tthis.eventsChange[ index ] = new Event( 'change', { \n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: true\n\t\t\t});\n\t\t\tconst draggableBullet = element.querySelector( '.frm-slider-bullet' );\n\t\t\tconst valueInput = element.querySelector( '.frm-slider-value input[type=\"text\"]' );\n\n\t\t\tvalueInput.addEventListener( 'change', ( event ) => {\n\t\t\t\tconst unit = element.querySelector( 'select' ).value;\n\n\t\t\t\tif ( this.getMaxValue( unit, index ) < parseInt( event.target.value, 10 ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.initSliderWidth( element );\n\t\t\t\tthis.options[ index ].fullValue = this.updateValue( element, valueInput.value + unit );\n\t\t\t\tthis.triggerValueChange( index );\n\t\t\t});\n\n\t\t\tthis.expandSliderGroup( element );\n\t\t\tthis.updateOnUnitChange( element, valueInput, index );\n\t\t\tthis.changeSliderPositionOnClick( element, valueInput, index );\n\n\t\t\tdraggableBullet.addEventListener( 'mousedown', ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tif ( element.classList.contains( 'frm-disabled' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.enableDragging( event, index );\n\t\t\t});\n\n\t\t\tdraggableBullet.addEventListener( 'mousemove', ( event ) => {\n\t\t\t\tif ( element.classList.contains( 'frm-disabled' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.moveTracker( event, index );\n\t\t\t});\n\n\t\t\tdraggableBullet.addEventListener( 'mouseup', ( event) => {\n\t\t\t\tif ( element.classList.contains( 'frm-disabled' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.disableDragging( index, event );\n\t\t\t});\n\n\t\t\tdraggableBullet.addEventListener( 'mouseleave', ( event ) => {\n\t\t\t\tif ( element.classList.contains( 'frm-disabled' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.disableDragging( index, event );\n\t\t\t});\n\t\t});\n\t}\n\n\texpandSliderGroup( element ) {\n\t\tconst svgIcon = element.querySelector( '.frmsvg' );\n\n\t\tif ( 'undefined' === typeof element.dataset.displaySliders || null === svgIcon ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst sliderGroupItems = this.getSliderGroupItems( element );\n\t\tsvgIcon.addEventListener( 'click', ( ) => {\n\t\t\tsliderGroupItems.forEach( ( item ) => {\n\t\t\t\titem.classList.toggle( 'frm_hidden' );\n\t\t\t});\n\t\t});\n\t}\n\n\tupdateOnUnitChange( element, valueInput, index ) {\n\t\telement.querySelector( 'select' ).addEventListener( 'change', ( event ) => {\n\t\t\tconst unit = event.target.value.toLowerCase();\n\n\t\t\tif ( '' === unit ) {\n\t\t\t\telement.classList.add( 'frm-disabled', 'frm-empty' );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( 'auto' === unit ) {\n\t\t\t\telement.classList.add( 'frm-disabled' );\n\t\t\t\tthis.updateValue( element, 'auto' );\n\t\t\t\tthis.triggerValueChange( index );\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\telement.classList.remove( 'frm-disabled', 'frm-empty' );\n\t\t\tthis.options[ index ].fullValue = valueInput.value + unit;\n\t\t\tthis.updateValue( element, this.options[ index ].fullValue );\n\t\t\tthis.triggerValueChange( index );\n\t\t});\n\t}\n\n\tchangeSliderPositionOnClick( element, valueInput, index ) {\n\t\tconst frmSlider = element.querySelector( '.frm-slider' );\n\t\tconst customEvent = new Event( 'change', {\n\t\t\t'bubbles': true,\n\t\t\t'cancelable': true\n\t\t});\n\n\t\tfrmSlider.addEventListener( 'click', ( event ) => {\n\t\t\tif ( element.classList.contains( 'frm-disabled' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\n\t\t\tif ( ! event.target.classList.contains( 'frm-slider' ) && ! event.target.classList.contains( 'frm-slider-active-track' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst sliderWidth = frmSlider.offsetWidth - this.sliderBulletWidth;\n\t\t\tconst sliderRect = frmSlider.getBoundingClientRect();\n\t\t\tconst deltaX = event.clientX - sliderRect.left - this.sliderBulletWidth;\n\t\t\tconst unit = element.querySelector( 'select' ).value;\n\t\t\tconst value = this.calculateValue( sliderWidth, deltaX, this.getMaxValue( unit, index ) );\n\n\t\t\tif ( value < 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.options[ index ].fullValue = this.updateValue( element, value + unit );\n\t\t\tthis.initChildSlidersWidth( element, deltaX, index, value + unit );\n\n\t\t\tvalueInput.value = value;\n\t\t\tvalueInput.dispatchEvent( customEvent );\n\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves an array of slider group items based on the provided element.\n\t *\n\t * @param {HTMLElement} element - The element to retrieve slider group items from.\n\t * @return {NodeList} - An array-like object containing the slider group items.\n\t */\n\tgetSliderGroupItems( element ) {\n\t\tif ( 'undefined' === typeof element.dataset.displaySliders ) {\n\t\t\treturn [];\n\t\t}\n\t\tconst slidersGroup = element.dataset.displaySliders.split( ',' );\n\t\tconst query = slidersGroup.map( ( item ) => {\n\t\t\treturn `.frm-slider-component[data-type=\"${item}\"]`;\n\t\t}).join( ', ' );\n\n\t\treturn element.closest( '.frm-style-component' ).querySelectorAll( query )\n\t}\n\n\t/**\n\t * Initializes the position of sliders when a style accordion section is opened.\n\t */\n\tinitSlidersPosition() {\n\t\tconst accordionitems = document.querySelectorAll( '#frm_style_sidebar .accordion-section h3' );\n\t\tconst quickSettings = document.querySelector( '.frm-quick-settings' );\n\t\tconst openedAccordion = document.querySelector( '.accordion-section.open' );\n\n\t\t// Detect if upload background image upload has triggered and initialize the \"Image Opacity\" slider width.\n\t\twp.hooks.addAction( 'frm_pro_on_bg_image_upload', 'formidable', ( event ) => {\n\t\t\tconst imageBackgroundOpacitySlider = event.closest( '.accordion-section-content' ).querySelector( '#frm-bg-image-opacity-slider' );\n\t\t\tthis.initSlidersWidth( imageBackgroundOpacitySlider );\n\t\t});\n\n\t\t// init the sliders width from \"Quick Settings\" page.\n\t\tif ( null !== quickSettings ) {\n\t\t\tthis.initSlidersWidth( quickSettings );\n\t\t}\n\n\t\t// Init the sliders width in opened accordion section from \"Advanced Settings\" page.\n\t\tif ( null !== openedAccordion ) {\n\t\t\tthis.initSlidersWidth( openedAccordion );\n\t\t}\n\n\t\t// init the sliders width everytime when an accordion section is opened from \"Advanced Settings\" page.\n\t\taccordionitems.forEach( ( item ) => {\n\t\t\titem.addEventListener( 'click', ( event ) => {\n\t\t\t\tthis.initSlidersWidth( event.target.closest( '.accordion-section' ) );\n\t\t\t});\n\t\t});\n\n\t\tthis.initSliderPositionOnFieldShapeChange();\n\t}\n\n\t/**\n\t * Initializes the width of \"Corner Radius\" slider that is dynamically is displayed on \"Field Shape\" option change from \"Quick Settings\".\n\t *\n\t * @return {void}\n\t */\n\tinitSliderPositionOnFieldShapeChange() {\n\t\tconst fieldShapeType = document.querySelector( '.frm-style-component.frm-field-shape' );\n\n\t\tif ( null === fieldShapeType ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst radioButtons = fieldShapeType.querySelectorAll( 'input[type=\"radio\"]' );\n\t\tradioButtons.forEach( ( radio ) => {\n\t\t\tradio.addEventListener( 'change', ( event ) => {\n\t\t\t\tif ( event.target.checked && 'rounded-corner' === event.target.value ) {\n\t\t\t\t\tconst slider = document.querySelector( 'div[data-frm-element=\"field-shape-corner-radius\"] .frm-slider-component' );\n\t\t\t\t\tthis.initSliderWidth( slider );\n\t\t\t\t}\n\t\t\t})\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the width of sliders within a given section.\n\t *\n\t * @param {HTMLElement} section - The section containing the sliders.\n\t * @return {void}\n\t */\n\tinitSlidersWidth( section ) {\n\t\tconst sliders = section.querySelectorAll( '.frm-slider-component' );\n\t\tsliders.forEach( ( slider ) => {\n\t\t\tsetTimeout( () => {\n\t\t\t\tthis.initSliderWidth( slider );\n\t\t\t}, 100 );\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the width of a slider.\n\t *\n\t * @param {HTMLElement} slider - The slider element.\n\t * @return {void}\n\t */\n\tinitSliderWidth( slider ) {\n\t\tif ( slider.classList.contains( 'frm-disabled' ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst index = this.getSliderIndex( slider );\n\t\tconst sliderWidth = slider.querySelector( '.frm-slider' ).offsetWidth - this.sliderBulletWidth;\n\t\tconst value = parseInt( slider.querySelector( '.frm-slider-value input[type=\"text\"]' ).value, 10 );\n\t\tconst unit = slider.querySelector( 'select' ).value;\n\t\tconst deltaX = '%' === unit ? Math.round( sliderWidth * value / 100 ) : Math.ceil( ( value / this.options[ index ].maxValue ) * sliderWidth );\n\n\t\tslider.querySelector( '.frm-slider-active-track' ).style.width = `${deltaX}px`;\n\t\tthis.options[ index ].translateX = deltaX;\n\t\tthis.options[ index ].value = value + unit;\n\t}\n\n\t/**\n\t * Initializes the width of child sliders.\n\t *\n\t * @param {HTMLElement} slider - The parent slider element.\n\t * @param {number} width - The width to set for the child sliders.\n\t * @param {number} index - The starting index for the child sliders.\n\t * @param {number} value - The value to set for the child sliders.\n\t */\n\tinitChildSlidersWidth( slider, width, index, value ) {\n\t\tif ( ! slider.classList.contains( 'frm-has-independent-fields' ) && ! slider.classList.contains( 'frm-has-multiple-values' ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst childSliders = slider.classList.contains( 'frm-has-independent-fields' ) ? slider.querySelectorAll( '.frm-independent-slider-field' ) : this.getSliderGroupItems( slider );\n\n\t\tchildSliders.forEach( ( item, childIndex ) => {\n\t\t\titem.querySelector( '.frm-slider-active-track' ).style.width = `${width}px`;\n\t\t\tthis.options[ index + childIndex + 1 ].translateX = width;\n\t\t\tthis.options[ index + childIndex + 1 ].value = value;\n\t\t});\n\t}\n\n\t/**\n\t * Returns the index of the specified slider element.\n\t *\n\t * @param {HTMLElement} slider - The slider element.\n\t * @return {number} The index of the slider element.\n\t */\n\tgetSliderIndex( slider ) {\n\t\treturn this.options.filter( ( option ) => {\n\t\t\treturn option.element === slider;\n\t\t})[0].index;\n\t};\n\n\t/**\n\t * Handles the movement of the slider tracker.\n\t *\n\t * @param {Event} event - The event object representing the mouse movement.\n\t * @param {number} index - The index of the slider element.\n\t * @return {void}\n\t */\n\tmoveTracker( event, index ) {\n\t\tif ( ! this.options[ index ].dragging ) {\n\t\t\treturn;\n\t\t}\n\t\tlet deltaX = event.clientX - this.options[ index ].startX;\n\t\tconst element = this.sliderElements[ index ];\n\t\tconst sliderWidth = element.querySelector( '.frm-slider' ).offsetWidth;\n\n\t\t// Ensure deltaX does not go below 0\n\t\tdeltaX = Math.max( deltaX, 0 );\n\n\t\tif ( deltaX + this.sliderBulletWidth / 2 + this.sliderMarginRight >= sliderWidth ) {\n\t\t\treturn;\n\t\t}\n\t\tconst unit = element.querySelector( 'select' ).value;\n\t\tconst value = this.calculateValue( sliderWidth, deltaX, this.getMaxValue( unit, index ) );\n\n\t\telement.querySelector( '.frm-slider-value input[type=\"text\"]' ).value = value;\n\t\telement.querySelector( '.frm-slider-bullet .frm-slider-value-label' ).innerText = value;\n\t\telement.querySelector( '.frm-slider-active-track' ).style.width = `${deltaX}px`;\n\t\tthis.initChildSlidersWidth( element, deltaX, index, value + unit );\n\n\t\tthis.options[ index ].translateX = deltaX;\n\t\tthis.options[ index ].value = value + unit;\n\t\tthis.options[ index ].fullValue = this.updateValue( element, this.options[ index ].value );\n\t\tthis.valueChangeDebouncer( index );\n\t}\n\n\t/**\n\t * Get the maximum value based on the unit and index.\n\t *\n\t * @param {string} unit - The unit of measurement.\n\t * @param {number} index - The index of the option.\n\t * @return {number} The maximum value.\n\t */\n\tgetMaxValue( unit, index ) {\n\t\treturn '%' === unit ? 100 : this.options[ index ].maxValue;\n\t}\n\n\t/**\n\t * Enables dragging for the slider style component.\n\t *\n\t * @param {Event} event - The event object.\n\t * @param {number} index - The index of the option being dragged.\n\t */\n\tenableDragging( event, index ) {\n\t\tevent.target.classList.add( 'frm-dragging' );\n\t\tthis.options[ index ].dragging = true;\n\t\tthis.options[ index ].startX = event.clientX - this.options[ index ].translateX;\n\t}\n\n\t/**\n\t * Disables dragging for a specific index.\n\t *\n\t * @param {number} index - The index of the option to disable dragging for.\n\t * @param {Event} event - The event object triggered by the dragging action.\n\t */\n\tdisableDragging( index, event ) {\n\t\tif ( false === this.options[ index ].dragging ) {\n\t\t\treturn;\n\t\t}\n\t\tevent.target.classList.remove( 'frm-dragging' );\n\t\tthis.options[ index ].dragging = false;\n\t\tthis.triggerValueChange( index );\n\t}\n\n\t/**\n\t * Triggers a value change for the specified index.\n\t *\n\t * @param {number} index - The index of the value to be changed.\n\t */\n\ttriggerValueChange( index ) {\n\t\tif ( null !== this.options[ index ].dependentUpdater ) {\n\t\t\tthis.options[ index ].dependentUpdater.updateAllDependentElements( this.options[ index ].fullValue );\n\t\t\treturn;\n\t\t}\n\n\t\tconst input = this.sliderElements[ index ].classList.contains( 'frm-has-multiple-values' ) ? this.sliderElements[ index ].closest('.frm-style-component').querySelector( 'input[type=\"hidden\"]' ) : this.sliderElements[ index ].querySelectorAll( '.frm-slider-value input[type=\"hidden\"]' );\n\t\tif ( input instanceof NodeList ) {\n\t\t\tinput.forEach( ( item ) => {\n\t\t\t\titem.dispatchEvent( this.eventsChange[ index ] );\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tinput.dispatchEvent( this.eventsChange[ index ] );\n\t}\n\n\t/**\n\t * Calculates the value based on the width, deltaX, and maxValue.\n\t *\n\t * @param {number} width - The width of the slider.\n\t * @param {number} deltaX - The change in x-coordinate.\n\t * @param {number} maxValue - The maximum value.\n\t * @return {number} - The calculated value.\n\t */\n\tcalculateValue( width, deltaX, maxValue ) {\n\n\t\t// Indicates the additional value generated by the slider's drag progress (up to 100%) and the width of the slider bullet.\n\t\t// Generates a more accurate value for the slider's start (0) and end (maximum value) positions, taking into account the slider's position and bullet width.\n\t\tconst delta = Math.ceil( this.sliderBulletWidth * ( deltaX / width ) );\n\n\t\tconst value = Math.ceil( ( ( deltaX + delta ) / width ) * maxValue );\n\n\t\treturn Math.min( value, maxValue )\n\t}\n\n\t/**\n\t * Updates the value of a slider component.\n\t *\n\t * @param {HTMLElement} element - The slider component element.\n\t * @param {string} value - The new value to be set.\n\t * @return {string} - The updated value.\n\t */\n\tupdateValue( element, value ) {\n\t\t// When the slider component is used for \"Base Font Size\", we need to update a hidden input field when change happens to indicate that the \"Base Font Size\" has been adjusted.\n\t\t// Used to avoid conflicts with other possible font sizes adjustemnts in \"Advanced Settings\" when moving from \"Quick Settings\" when \"Base Font Size\" is not changed.\n\t\tif ( element.classList.contains( 'frm-base-font-size' ) ) {\n\t\t\tconst userBaseFontSizeInput = document.querySelector( 'input[name=\"frm_style_setting[post_content][use_base_font_size]\"]' );\n\t\t\tif ( null !== userBaseFontSizeInput ) {\n\t\t\t\tuserBaseFontSizeInput.value = 'true';\n\t\t\t}\n\t\t}\n\t\tif ( element.classList.contains( 'frm-has-multiple-values' ) ) {\n\t\t\tconst input = element.closest( '.frm-style-component' ).querySelector( 'input[type=\"hidden\"]' );\n\t\t\tconst inputValue = input.value.split( ' ' );\n\t\t\tconst type = element.dataset.type;\n\n\t\t\tif ( ! inputValue[2] ) {\n\t\t\t\tinputValue[2] = '0px';\n\t\t\t}\n\n\t\t\tif ( ! inputValue[3] ) {\n\t\t\t\tinputValue[3] = '0px';\n\t\t\t}\n\n\t\t\tswitch ( type ) {\n\t\t\t\tcase 'vertical':\n\t\t\t\t\tinputValue[0] = value;\n\t\t\t\t\tinputValue[2] = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'horizontal':\n\t\t\t\t\tinputValue[1] = value;\n\t\t\t\t\tinputValue[3] = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'top':\n\t\t\t\t\tinputValue[0] = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'bottom':\n\t\t\t\t\tinputValue[2] = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'left':\n\t\t\t\t\tinputValue[3] = value;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'right':\n\t\t\t\t\tinputValue[1] = value;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst newValue = inputValue.join( ' ' );\n\t\t\tinput.value = newValue;\n\n\t\t\tconst childSlidersGroup = this.getSliderGroupItems( element );\n\t\t\tchildSlidersGroup.forEach( ( slider ) => {\n\t\t\t\tconst unitMeasure = this.getUnitMeasureFromValue( value );\n\t\t\t\tslider.querySelector( '.frm-slider-value input[type=\"text\"]' ).value = parseInt( value, 10 );\n\t\t\t\tslider.querySelector( 'select' ).value = unitMeasure;\n\t\t\t});\n\n\t\t\treturn newValue;\n\t\t}\n\n\t\tif ( element.classList.contains( 'frm-has-independent-fields' ) ) {\n\t\t\tconst inputValues = element.querySelectorAll( '.frm-slider-value input[type=\"hidden\"]' );\n\t\t\tconst visibleValues = element.querySelectorAll( '.frm-slider-value input[type=\"text\"]' );\n\t\t\tinputValues.forEach( ( input, index ) => {\n\t\t\t\tinput.value = value;\n\t\t\t\tvisibleValues[ index + 1 ].value = parseInt( value, 10 );\n\t\t\t});\n\n\t\t\treturn value;\n\t\t}\n\n\t\telement.querySelector( '.frm-slider-value input[type=\"hidden\"]' ).value = value;\n\t\treturn value;\n\t}\n\n\t/**\n\t * Returns the unit of measurement used in the given value.\n\t *\n\t * @param {string} value - The value to check for the unit of measurement.\n\t * @return {string} The unit of measurement ('%', 'px', 'em') found in the value, or an empty string if none is found.\n\t */\n\tgetUnitMeasureFromValue( value ) {\n\t\treturn [ '%', 'px', 'em' ].find( unit => value.includes( unit ) ) || '';\n\t}\n}","import { frmTabsNavigator } from '../../components/class-tabs-navigator';\n/**\n * Represents a Tabs Style Component.\n * @class\n */\nexport default class frmTabsStyleComponent {\n\n\tconstructor() {\n\t\tthis.elements = document.querySelectorAll( '.frm-style-tabs-wrapper' );\n\t\tif ( 0 < this.elements.length ) {\n\t\t\tthis.init();\n\t\t}\n\t}\n\n\t/**\n\t * Initializes the Tabs Style Component.\n\t */\n\tinit() {\n\t\tthis.elements.forEach( ( element ) => {\n\t\t\tnew frmTabsNavigator( element );\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the component on tab click.\n\t * @param {Element} wrapper - The wrapper element.\n\t */\n\tinitOnTabClick( wrapper ) {\n\t\tthis.initActiveBackgroundWidth( wrapper );\n\t\twrapper.querySelectorAll( '.frm-tab-item' ).forEach( ( tab ) => {\n\t\t\ttab.addEventListener( 'click', ( event ) => {\n\t\t\t\tthis.onTabClick( event.target.closest( '.frm-tabs-wrapper' ) );\n\t\t\t});\n\t\t});\n\t}\n}","export class frmTabsNavigator {\n\n\tconstructor( wrapper ) {\n\t\tif ( 'undefined' === typeof wrapper ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.wrapper = wrapper instanceof Element ? wrapper : document.querySelector( wrapper );\n\n\t\tif ( null === this.wrapper ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.flexboxSlidesGap = '16px';\n\t\tthis.navs = this.wrapper.querySelectorAll( '.frm-tabs-navs ul > li' );\n\t\tthis.slideTrackLine = this.wrapper.querySelector( '.frm-tabs-active-underline' );\n\t\tthis.slideTrack = this.wrapper.querySelector( '.frm-tabs-slide-track' );\n\t\tthis.slides = this.wrapper.querySelectorAll( '.frm-tabs-slide-track > div' );\n\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tif ( null === this.wrapper || ! this.navs.length || null === this.trackLine || null === this.slideTrack || ! this.slides.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.initDefaultSlideTrackerWidth();\n\t\tthis.navs.forEach( ( nav, index ) => {\n\t\t\tnav.addEventListener( 'click', event => this.onNavClick( event, index ) );\n\t\t});\n\t}\n\n\tonNavClick( event, index ) {\n\t\tthis.removeActiveClassnameFromNavs();\n\t\tevent.target.classList.add( 'frm-active' );\n\t\tthis.initSlideTrackUnderline( event.target, index );\n\t\tthis.changeSlide( index );\n\t}\n\n\tinitDefaultSlideTrackerWidth() {\n\t\tif ( ! this.slideTrackLine.dataset.initialWidth ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.slideTrackLine.style.width = `${this.slideTrackLine.dataset.initialWidth}px`;\n\t}\n\tinitSlideTrackUnderline( nav, index ) {\n\t\tthis.slideTrackLine.classList.remove( 'frm-first', 'frm-last' );\n\t\tconst activeNav = 'undefined' !== typeof nav ? nav : this.navs.filter( nav => nav.classList.contains( 'frm-active' ) ) ;\n\t\tthis.slideTrackLine.style.transform = `translateX(${activeNav.offsetLeft}px)`;\n\t\tthis.slideTrackLine.style.width = activeNav.clientWidth + 'px';\n\n\t\tif ( this.navs.length === index + 1 ) { \n\t\t\tthis.slideTrackLine.classList.add( 'frm-last' );\n\t\t\treturn;\n\t\t}\n\t\tif ( 0 === index ) {\n\t\t\tthis.slideTrackLine.classList.add( 'frm-first' );\n\t\t}\n\t}\n\n\tchangeSlide( index ) {\n\t\tthis.removeActiveClassnameFromSlides();\n\t\tconst translate = index == 0 ? '0px' : `calc( ( ${( index * 100 )}% + ${parseInt( this.flexboxSlidesGap, 10 ) * index }px ) * -1 )`;\n\t\tthis.slideTrack.style.transform = `translateX(${translate})`;\n\t\tif ( index in this.slides ) {\n\t\t\tthis.slides[ index ].classList.add( 'frm-active' );\n\t\t}\n\t}\n\n\tremoveActiveClassnameFromSlides() {\n\t\tthis.slides.forEach( slide => slide.classList.remove( 'frm-active' ) );\n\t}\n\n\tremoveActiveClassnameFromNavs() {\n\t\tthis.navs.forEach( nav => nav.classList.remove( 'frm-active' ) );\n\t}\n}\n","export const { url: PLUGIN_URL, nonce } = window.frmGlobal;\nexport const HIDDEN_CLASS = 'frm_hidden';\nexport const HIDE_JS_CLASS = 'frm-hide-js';\nexport const CURRENT_CLASS = 'frm-current';\nexport const CHECKED_CLASS = 'frm-checked';\n","export class frmAnimate {\n\n\t/**\n\t * Construct frmAnimate\n\t *\n\t * @param {Element|Element[]} elements\n\t * @param {'default'|'cascade'|'cascade-3d'} type - The animation type: default | cascade | cascade-3d\n\t *\n\t */\n\tconstructor( elements, type = 'default' ) {\n\t\tthis.elements = elements;\n\t\tthis.type = type;\n\n\t\tthis.prepareElements();\n\t}\n\n\t/**\n\t * Init animation - fadeIn.\n\t * Requires this.type = 'default';\n\t * ex: new frmAnimate( elements ).fadeIn();\n\t */\n\tfadeIn() {\n\t\tthis.applyStyleToElements( element => {\n\t\t\telement.classList.add( 'frm-fadein-up' );\n\n\t\t\telement.addEventListener( 'animationend', () => {\n\t\t\t\tthis.resetOpacity();\n\t\t\t\telement.classList.remove( 'frm-fadein-up' );\n\t\t\t}, { once: true });\n\t\t});\n\t}\n\n\t/**\n\t * Init animation - cascadeFadeIn.\n\t * Requires this.type = 'cascade'|'cascade-3d';\n\t * ex: new frmAnimate( elements, 'cascade' ).cascadeFadeIn();\n\t * new frmAnimate( elements, 'cascade-3d' ).cascadeFadeIn();\n\t *\n\t * @param {float} delay - The transition delay value.\n\t *\n\t */\n\tcascadeFadeIn( delay = 0.03 ) {\n\t\tsetTimeout( () => {\n\t\t\tthis.applyStyleToElements( ( element, index ) => {\n\t\t\t\telement.classList.remove( 'frm-animate' );\n\t\t\t\telement.style.transitionDelay = ( index + 1 ) * delay + 's';\n\t\t\t});\n\t\t}, 200 );\n\t}\n\n\tprepareElements() {\n\t\tthis.applyStyleToElements( element => {\n\t\t\tif ( 'default' === this.type ) {\n\t\t\t\telement.style.opacity = '0.0';\n\t\t\t}\n\t\t\tif ( 'cascade' === this.type ) {\n\t\t\t\telement.classList.add( 'frm-init-cascade-animation' );\n\t\t\t}\n\t\t\tif ( 'cascade-3d' === this.type ) {\n\t\t\t\telement.classList.add( 'frm-init-fadein-3d' );\n\t\t\t}\n\t\t\telement.classList.add( 'frm-animate' );\n\t\t});\n\t}\n\n\tresetOpacity() {\n\t\tthis.applyStyleToElements( element => element.style.opacity = '1.0' );\n\t}\n\n\tapplyStyleToElements( callback ) {\n\t\tif ( this.elements instanceof Element ) {\n\t\t\tcallback( this.elements, 0 );\n\t\t\treturn;\n\t\t}\n\t\tif ( 0 < this.elements.length ) {\n\t\t\tthis.elements.forEach( ( element, index ) => callback( element, index ) );\n\t\t}\n\t}\n}\n","// Initialize lastPromise with a resolved promise as the starting point for the queue\nlet lastPromise = Promise.resolve();\n\n/**\n * Adds a task to the request queue.\n *\n * @param {function(): Promise} task A function that returns a promise.\n * @return {Promise} The new last promise in the queue.\n */\nexport const addToRequestQueue = task => lastPromise = lastPromise.then( task ).catch( task );\n","/**\n * Internal dependencies\n */\nimport { hide, show } from '.';\n\n/**\n * Displays form validation error messages.\n *\n * @param {string} inputId The ID selector for the input field with the error.\n * @param {string} errorId The ID selector for the error message display element.\n * @param {string} type The categorization of the error (e.g., \"invalid\", \"empty\").\n * @param {string} [message] Optional. The specific error message to display.\n * @return {void}\n */\nexport const showFormError = ( inputId, errorId, type, message ) => {\n\tconst inputElement = document.querySelector( inputId );\n\tconst errorElement = document.querySelector( errorId );\n\n\tif ( ! inputElement || ! errorElement ) {\n\t\tconsole.warn( 'showFormError: Unable to find input or error element.' );\n\t\treturn;\n\t}\n\n\t// If a message is provided, update the span element's text that matches the error type\n\tif ( message ) {\n\t\tconst span = errorElement.querySelector( `span[frm-error=\"${type}\"]` );\n\t\tif ( span ) {\n\t\t\tspan.textContent = message;\n\t\t}\n\t}\n\n\t// Assign the error type and make the error message visible\n\terrorElement.setAttribute( 'frm-error', type );\n\tshow( errorElement );\n\n\t// Hide the error message when the user starts typing in the faulty input field\n\tinputElement.addEventListener( 'keyup', () => {\n\t\thide( errorElement );\n\t}, { once: true });\n};\n","export const { onClickPreventDefault } = window.frmDom.util;\n","export * from './animation';\nexport * from './async';\nexport * from './error';\nexport * from './event';\nexport * from './url';\nexport * from './validation';\nexport * from './visibility';\n","/**\n * Initializes URL and URLSearchParams objects from the current window's location\n */\nconst url = new URL( window.location.href );\nconst urlParams = url.searchParams;\n\n/**\n * Gets the value of a specified query parameter from the current URL.\n *\n * @param {string} paramName The name of the query parameter to retrieve.\n * @return {string|null} The value associated with the specified query parameter name, or null if not found.\n */\nexport const getQueryParam = paramName => urlParams.get( paramName );\n\n/**\n * Removes a query parameter from the current URL and returns the updated URL string.\n *\n * @param {string} paramName The name of the query parameter to remove.\n * @return {string} The updated URL string.\n */\nexport const removeQueryParam = ( paramName ) => {\n\turlParams.delete( paramName );\n\turl.search = urlParams.toString();\n\treturn url.toString();\n};\n\n/**\n * Sets the value of a query parameter in the current URL and optionally updates the browser's history state.\n *\n * @param {string} paramName The name of the query parameter to set.\n * @param {string} paramValue The value to set for the query parameter.\n * @param {string} [updateMethod='pushState'] The method to use for updating the history state. Accepts 'pushState' or 'replaceState'.\n * @return {string} The updated URL string.\n */\nexport const setQueryParam = ( paramName, paramValue, updateMethod = 'pushState' ) => {\n\turlParams.set( paramName, paramValue );\n\turl.search = urlParams.toString();\n\n\tif ([ 'pushState', 'replaceState' ].includes( updateMethod ) ) {\n\t\tconst state = {[paramName]: paramValue};\n\t\twindow.history[updateMethod]( state, '', url );\n\t}\n\n\treturn url.toString();\n};\n\n/**\n * Checks if a query parameter exists in the current URL.\n *\n * @param {string} paramName The name of the query parameter to check.\n * @return {boolean} True if the query parameter exists, otherwise false.\n */\nexport const hasQueryParam = paramName => urlParams.has( paramName );\n","/**\n * Validates an email address using a regular expression.\n *\n * @param {string} email The email address to validate.\n * @return {boolean} True if the email address is valid, otherwise false.\n */\nexport const isValidEmail = email =>\n\ttypeof email === 'string' ? /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/i.test( email ) : false;\n\n/**\n * Validates if the given element is an instance of HTMLElement.\n *\n * @param {any} element Element to be checked.\n * @return {boolean} True if it's an HTMLElement, otherwise false.\n */\nexport const isHTMLElement = element => element instanceof HTMLElement || console.warn( 'Invalid argument: Element must be an instance of HTMLElement' ) || false;\n\n/**\n * Checks if the given object is empty.\n *\n * @param {Object} obj The object to check.\n * @return {boolean} True if the object is empty, otherwise false.\n */\nexport const isEmptyObject = obj => Object.keys( obj ).length === 0 && obj.constructor === Object;\n","/**\n * Internal dependencies\n */\nimport { HIDDEN_CLASS } from 'core/constants';\n\n/**\n * Shows specified elements by removing the hidden class.\n *\n * @param {Array} elements An array of elements to show.\n * @return {void}\n */\nexport const showElements = elements =>\n\tArray.from( elements )?.forEach( element => show( element ) );\n\n/**\n * Hides specified elements by adding the hidden class.\n *\n * @param {Array} elements An array of elements to hide.\n * @return {void}\n */\nexport const hideElements = elements =>\n\tArray.from( elements )?.forEach( element => hide( element ) );\n\n/**\n * Removes the hidden class to show the element.\n *\n * @param {Element} element The element to show.\n * @return {void}\n */\nexport const show = element => element?.classList.remove( HIDDEN_CLASS );\n\n/**\n * Adds the hidden class to hide the element.\n *\n * @param {Element} element The element to hide.\n * @return {void}\n */\nexport const hide = element => element?.classList.add( HIDDEN_CLASS );\n\n/**\n * Checks if an element is visible.\n *\n * @param {HTMLElement} element The HTML element to check for visibility.\n * @return {boolean} Returns true if the element is visible, otherwise false.\n */\nexport const isVisible = element => {\n\tconst styles = window.getComputedStyle( element );\n\treturn styles.getPropertyValue( 'display' ) !== 'none';\n};\n","/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>} args Function arguments for cache\n * entry.\n * @property {*} val Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F} fn Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( process.env.NODE_ENV === 'test' ) {\n\t\t// Cache is not exposed in the public API, but used in tests to ensure\n\t\t// expected list progression\n\t\tmemoized.getCache = function() {\n\t\t\treturn [ head, tail, size ];\n\t\t};\n\t}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n","/* global window, exports, define */\n\n!function() {\n 'use strict'\n\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n }\n\n function sprintf(key) {\n // `arguments` is not an array, but should be fine for this call\n return sprintf_format(sprintf_parse(key), arguments)\n }\n\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []))\n }\n\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === 'string') {\n output += parse_tree[i]\n }\n else if (typeof parse_tree[i] === 'object') {\n ph = parse_tree[i] // convenience purposes only\n if (ph.keys) { // keyword argument\n arg = argv[cursor]\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == undefined) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n }\n arg = arg[ph.keys[k]]\n }\n }\n else if (ph.param_no) { // positional argument (explicit)\n arg = argv[ph.param_no]\n }\n else { // positional argument (implicit)\n arg = argv[cursor++]\n }\n\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg()\n }\n\n if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n }\n\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt]\n }\n\n var _fmt = fmt, match, parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0])\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n )\n }\n else {\n throw new SyntaxError('[sprintf] unexpected placeholder')\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return sprintf_cache[fmt] = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports['sprintf'] = sprintf\n exports['vsprintf'] = vsprintf\n }\n if (typeof window !== 'undefined') {\n window['sprintf'] = sprintf\n window['vsprintf'] = vsprintf\n\n if (typeof define === 'function' && define['amd']) {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n","import pluralForms from '@tannin/plural-forms';\n\n/**\n * Tannin constructor options.\n *\n * @typedef {Object} TanninOptions\n *\n * @property {string} [contextDelimiter] Joiner in string lookup with context.\n * @property {Function} [onMissingKey] Callback to invoke when key missing.\n */\n\n/**\n * Domain metadata.\n *\n * @typedef {Object} TanninDomainMetadata\n *\n * @property {string} [domain] Domain name.\n * @property {string} [lang] Language code.\n * @property {(string|Function)} [plural_forms] Plural forms expression or\n * function evaluator.\n */\n\n/**\n * Domain translation pair respectively representing the singular and plural\n * translation.\n *\n * @typedef {[string,string]} TanninTranslation\n */\n\n/**\n * Locale data domain. The key is used as reference for lookup, the value an\n * array of two string entries respectively representing the singular and plural\n * translation.\n *\n * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain\n */\n\n/**\n * Jed-formatted locale data.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData\n */\n\n/**\n * Default Tannin constructor options.\n *\n * @type {TanninOptions}\n */\nvar DEFAULT_OPTIONS = {\n\tcontextDelimiter: '\\u0004',\n\tonMissingKey: null,\n};\n\n/**\n * Given a specific locale data's config `plural_forms` value, returns the\n * expression.\n *\n * @example\n *\n * ```\n * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)'\n * ```\n *\n * @param {string} pf Locale data plural forms.\n *\n * @return {string} Plural forms expression.\n */\nfunction getPluralExpression( pf ) {\n\tvar parts, i, part;\n\n\tparts = pf.split( ';' );\n\n\tfor ( i = 0; i < parts.length; i++ ) {\n\t\tpart = parts[ i ].trim();\n\t\tif ( part.indexOf( 'plural=' ) === 0 ) {\n\t\t\treturn part.substr( 7 );\n\t\t}\n\t}\n}\n\n/**\n * Tannin constructor.\n *\n * @class\n *\n * @param {TanninLocaleData} data Jed-formatted locale data.\n * @param {TanninOptions} [options] Tannin options.\n */\nexport default function Tannin( data, options ) {\n\tvar key;\n\n\t/**\n\t * Jed-formatted locale data.\n\t *\n\t * @name Tannin#data\n\t * @type {TanninLocaleData}\n\t */\n\tthis.data = data;\n\n\t/**\n\t * Plural forms function cache, keyed by plural forms string.\n\t *\n\t * @name Tannin#pluralForms\n\t * @type {Object}\n\t */\n\tthis.pluralForms = {};\n\n\t/**\n\t * Effective options for instance, including defaults.\n\t *\n\t * @name Tannin#options\n\t * @type {TanninOptions}\n\t */\n\tthis.options = {};\n\n\tfor ( key in DEFAULT_OPTIONS ) {\n\t\tthis.options[ key ] = options !== undefined && key in options\n\t\t\t? options[ key ]\n\t\t\t: DEFAULT_OPTIONS[ key ];\n\t}\n}\n\n/**\n * Returns the plural form index for the given domain and value.\n *\n * @param {string} domain Domain on which to calculate plural form.\n * @param {number} n Value for which plural form is to be calculated.\n *\n * @return {number} Plural form index.\n */\nTannin.prototype.getPluralForm = function( domain, n ) {\n\tvar getPluralForm = this.pluralForms[ domain ],\n\t\tconfig, plural, pf;\n\n\tif ( ! getPluralForm ) {\n\t\tconfig = this.data[ domain ][ '' ];\n\n\t\tpf = (\n\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t// @ts-ignore\n\t\t\tconfig.plural_forms\n\t\t);\n\n\t\tif ( typeof pf !== 'function' ) {\n\t\t\tplural = getPluralExpression(\n\t\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t\t// @ts-ignore\n\t\t\t\tconfig.plural_forms\n\t\t\t);\n\n\t\t\tpf = pluralForms( plural );\n\t\t}\n\n\t\tgetPluralForm = this.pluralForms[ domain ] = pf;\n\t}\n\n\treturn getPluralForm( n );\n};\n\n/**\n * Translate a string.\n *\n * @param {string} domain Translation domain.\n * @param {string|void} context Context distinguishing terms of the same name.\n * @param {string} singular Primary key for translation lookup.\n * @param {string=} plural Fallback value used for non-zero plural\n * form index.\n * @param {number=} n Value to use in calculating plural form.\n *\n * @return {string} Translated string.\n */\nTannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) {\n\tvar index, key, entry;\n\n\tif ( n === undefined ) {\n\t\t// Default to singular.\n\t\tindex = 0;\n\t} else {\n\t\t// Find index by evaluating plural form for value.\n\t\tindex = this.getPluralForm( domain, n );\n\t}\n\n\tkey = singular;\n\n\t// If provided, context is prepended to key with delimiter.\n\tif ( context ) {\n\t\tkey = context + this.options.contextDelimiter + singular;\n\t}\n\n\tentry = this.data[ domain ][ key ];\n\n\t// Verify not only that entry exists, but that the intended index is within\n\t// range and non-empty.\n\tif ( entry && entry[ index ] ) {\n\t\treturn entry[ index ];\n\t}\n\n\tif ( this.options.onMissingKey ) {\n\t\tthis.options.onMissingKey( singular, domain );\n\t}\n\n\t// If entry not found, fall back to singular vs. plural with zero index\n\t// representing the singular value.\n\treturn index === 0 ? singular : plural;\n};\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { __ } from '@wordpress/i18n';\nimport frmRadioStyleComponent from './styles/radio-style-component.js';\nimport frmSliderStyleComponent from './styles/slider-style-component.js';\nimport frmTabsStyleComponent from './styles/tabs-style-component.js';\nimport frmStyleDependentUpdaterComponent from './styles/dependent-updater-component.js';\n\n/**\n * Represents the frmStyleOptions class.\n * @class\n */\nclass frmStyleOptions {\n\n\tconstructor() {\n\t\tthis.success = frmDom.success;\n\t\tthis.init();\n\t\tthis.initHover();\n\t}\n\n\t/**\n\t * Initializes the style components: frmRadioStyleComponent, frmSliderStyleComponent, and frmTabsStyleComponent.\n\t * Init the dependent \n\t */\n\tinit() {\n\t\tnew frmRadioStyleComponent();\n\t\tnew frmSliderStyleComponent();\n\t\tnew frmTabsStyleComponent();\n\n\t\tthis.initColorPickerDependentUpdaterComponents();\n\t\tthis.initStyleClassCopyToClipboard( __( 'The class name has been copied.', 'formidable' ) );\n\t}\n\n\t/**\n\t * Initializes the color picker dependent updater components.\n\t * Retrieves the components and elements, and adds them to the elements array.\n\t * Adds an action hook for the frm_style_options_color_change event.\n\t */\n\tinitColorPickerDependentUpdaterComponents() {\n\t\tconst components = document.querySelectorAll( '.frm-style-dependent-updater-component.frm-colorpicker' );\n\t\tconst elements = [];\n\n\t\tcomponents.forEach( ( component ) => {\n\t\t\tconst element = component.querySelector( 'input.hex' );\n\t\t\tconst id = 'undefined' !== typeof element ? element.getAttribute( 'id' ) : null;\n\n\t\t\tif ( null !== id ) {\n\t\t\t\telements.push({\n\t\t\t\t\tid: id,\n\t\t\t\t\tdependentUpdaterClass: new frmStyleDependentUpdaterComponent( component, 'colorpicker' )\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\twp.hooks.addAction( 'frm_style_options_color_change', 'formidable', ( { event, value } ) => {\n\t\t\tconst container = event.target.closest( '.wp-picker-container' );\n\t\t\tconst id = event.target.getAttribute( 'id' );\n\n\t\t\tcontainer.querySelector( '.wp-color-result-text' ).innerText = value;\n\n\t\t\telements.forEach( ( element ) => {\n\t\t\t\tif ( element.id === id ) {\n\t\t\t\t\telement.dependentUpdaterClass.updateAllDependentElements( value );\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the hover functionality for the style options.\n\t * Creates a hover element and appends it to the settingsWrapper.\n\t * Adds event listeners for mouseover and click events.\n\t */\n\tinitHover() {\n\t\tconst settingsWrapper = document.querySelector( '.frm-right-panel .styling_settings .accordion-container' );\n\t\tif ( null === settingsWrapper ) {\n\t\t\treturn;\n\t\t}\n\t\tconst hoverElement = document.createElement( 'div' );\n\t\thoverElement.classList.add( 'frm_hidden' );\n\t\thoverElement.classList.add( 'frm-style-settings-hover' );\n\t\tsettingsWrapper.appendChild( hoverElement );\n\n\t\tconst styleOptionsMenu = settingsWrapper.querySelector( ':scope > ul' );\n\n\t\tstyleOptionsMenu.querySelectorAll( ':scope > li' ).forEach( ( item ) => {\n\t\t\titem.querySelector('h3').addEventListener( 'mouseover', ( event ) => {\n\t\t\t\thoverElement.style.transform = `translateY(${event.target.closest('li').offsetTop}px)`;\n\t\t\t\thoverElement.classList.add( 'frm-animating' );\n\t\t\t\thoverElement.classList.remove( 'frm_hidden' );\n\t\t\t\tsetTimeout( () => { hoverElement.classList.remove( 'frm-animating' ); }, 250 );\n\t\t\t});\n\t\t});\n\n\t\tconst accordionitems = document.querySelectorAll( '#frm_style_sidebar .accordion-section h3' );\n\t\taccordionitems.forEach( ( item ) => {\n\t\t\titem.addEventListener( 'click', () => {\n\t\t\t\thoverElement.classList.add( 'frm_hidden' );\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the copy to clipboard functionality for style classes.\n\t * Adds a click event listener to the copyLabel element.\n\t * Copies the class name to the clipboard and displays a success message.\n\t * @param {string} successMessage - The success message to display.\n\t */\n\tinitStyleClassCopyToClipboard( successMessage ) {\n\t\tconst copyLabel = document.querySelector( '.frm-copy-text' );\n\t\tcopyLabel.addEventListener( 'click', ( event ) => {\n\t\t\tconst className = event.currentTarget.innerText;\n\t\t\tnavigator.clipboard.writeText( className ).then( () => {\n\t\t\t\tthis.success( successMessage );\n\t\t\t});\n\t\t})\n\t}\n}\n\nnew frmStyleOptions();\n"],"names":["frmStyleDependentUpdaterComponent","component","_classCallCheck","willChangeData","JSON","parse","dataset","willChange","data","propagateInputs","initPropagationList","changeEvent","Event","bubbles","error","console","_createClass","key","value","inputNames","list","forEach","name","input","document","querySelector","concat","push","updateAllDependentElements","dispatchEvent","default","show","hide","frmRadioStyleComponent","radioElements","querySelectorAll","length","init","_this","element","initOnRadioChange","initTrackerOnAccordionClick","_this2","accordionitems","accordionitem","addEventListener","event","wrapper","target","closest","radioButtons","radio","setTimeout","onRadioChange","radioElement","_this3","checked","activeItem","moveTracker","hideExtraElements","maybeShowExtraElements","elementAttr","getAttribute","elements","classList","add","remove","offset","offsetLeft","width","offsetWidth","tracker","style","left","transform","frmSliderStyleComponent","sliderElements","sliderBulletWidth","sliderMarginRight","eventsChange","debounce","frmDom","util","valueChangeDebouncer","index","triggerValueChange","initOptions","options","parentWrapper","contains","dragging","startX","translateX","maxValue","parseInt","dependentUpdater","initSlidersPosition","initDraggable","cancelable","draggableBullet","valueInput","unit","getMaxValue","initSliderWidth","fullValue","updateValue","expandSliderGroup","updateOnUnitChange","changeSliderPositionOnClick","preventDefault","stopPropagation","enableDragging","disableDragging","svgIcon","displaySliders","sliderGroupItems","getSliderGroupItems","item","toggle","_this4","toLowerCase","_this5","frmSlider","customEvent","sliderWidth","sliderRect","getBoundingClientRect","deltaX","clientX","calculateValue","initChildSlidersWidth","slidersGroup","split","query","map","join","_this6","quickSettings","openedAccordion","wp","hooks","addAction","imageBackgroundOpacitySlider","initSlidersWidth","initSliderPositionOnFieldShapeChange","_this7","fieldShapeType","slider","section","_this8","sliders","getSliderIndex","Math","round","ceil","_this9","childSliders","childIndex","filter","option","max","innerText","_this10","NodeList","delta","min","_this11","userBaseFontSizeInput","inputValue","type","newValue","childSlidersGroup","unitMeasure","getUnitMeasureFromValue","inputValues","visibleValues","find","includes","frmTabsNavigator","frmTabsStyleComponent","initOnTabClick","initActiveBackgroundWidth","tab","onTabClick","Element","flexboxSlidesGap","navs","slideTrackLine","slideTrack","slides","trackLine","initDefaultSlideTrackerWidth","nav","onNavClick","removeActiveClassnameFromNavs","initSlideTrackUnderline","changeSlide","initialWidth","activeNav","clientWidth","removeActiveClassnameFromSlides","translate","slide","_window$frmGlobal","window","frmGlobal","PLUGIN_URL","url","nonce","HIDDEN_CLASS","HIDE_JS_CLASS","CURRENT_CLASS","CHECKED_CLASS","frmAnimate","arguments","undefined","prepareElements","fadeIn","applyStyleToElements","resetOpacity","once","cascadeFadeIn","delay","transitionDelay","opacity","callback","lastPromise","Promise","resolve","addToRequestQueue","task","then","catch","showFormError","inputId","errorId","message","inputElement","errorElement","warn","span","textContent","setAttribute","onClickPreventDefault","URL","location","href","urlParams","searchParams","getQueryParam","paramName","get","removeQueryParam","delete","search","toString","setQueryParam","paramValue","updateMethod","set","state","_defineProperty","history","hasQueryParam","has","isValidEmail","email","test","isHTMLElement","HTMLElement","isEmptyObject","obj","Object","keys","constructor","showElements","_Array$from","Array","from","hideElements","_Array$from2","isVisible","styles","getComputedStyle","getPropertyValue","__","frmStyleOptions","success","initHover","initColorPickerDependentUpdaterComponents","initStyleClassCopyToClipboard","components","id","dependentUpdaterClass","_ref","container","settingsWrapper","hoverElement","createElement","appendChild","styleOptionsMenu","offsetTop","successMessage","copyLabel","className","currentTarget","navigator","clipboard","writeText"],"sourceRoot":""} +======= +{"version":3,"file":"formidable_styles.js","mappings":";;;;;;;;;;;;;;;;AAAsC;AACE;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,aAAa,oBAAoB,MAAM;AACnD;AACe;AACf,aAAa,2DAAO;;AAEpB;AACA,SAAS,4DAAQ;AACjB;AACA;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB;AACA,YAAY,GAAG;AACf;AACe;AACf;AACA;;AAEA,cAAc,oBAAoB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AC7GsC;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf,gBAAgB,2DAAO;;AAEvB;AACA,sBAAsB,OAAO;AAC7B;AACA;;;;;;;;;;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,UAAU;AACtB;AACe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;AC3HA;AACA;AACA;AACuD;AACF;AACrD;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC,WAAW,sBAAsB;AACjC;;AAEA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,sBAAsB;AAClC;AACA,YAAY,SAAS;AACrB;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,gEAAgB;AACzB;AACA;;AAEA,SAAS,iEAAiB;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,QAAQ;;AAEzB;;AAEA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,kBAAkB;AAClB;;;AAGA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,aAAa,EAAC;AAC7B;;;;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA,YA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DAAiD,mFAAmF,OAAO;;AAEtgB;AACA;AACA;AAC4B;AAC5B;AACA,aAAa,oBAAoB;AACjC;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,iCAAiC;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8CAA8C;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8CAA8C;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,YAAY;;AAE1B,cAAc,YAAY;;AAE1B;AACA,aAAa,sDAAsD;AACnE;AACA;AACA;;AAEA;AACA,aAAa,6BAA6B;AAC1C;AACA;;AAEA;AACA,aAAa,2CAA2C;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,4DAA4D;AACzE;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,6EAA6E;AAC1F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8FAA8F;AAC3G;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,gEAAgE;AAC7E;AACA;AACA;;AAEA,cAAc,kCAAkC;;AAEhD;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,cAAc,eAAe;AAC7B;AACA,cAAc,iBAAiB;AAC/B;AACA,cAAc,WAAW;AACzB,cAAc,IAAI;AAClB,cAAc,IAAI;AAClB,cAAc,IAAI;AAClB;AACA,cAAc,KAAK;AACnB;AACA,cAAc,OAAO;AACrB,cAAc,gBAAgB;AAC9B;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,YAAY,4BAA4B;AACxC;;AAEO;AACP;AACA;AACA;AACA,YAAY;AACZ;AACA,mBAAmB,8CAAM,GAAG;AAC5B;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa,m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;AACA,cAAc,4BAA4B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;;AAEA,YAAY,4BAA4B;AACxC;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,2BAA2B,eAAe;AAC1C,qBAAqB,iBAAiB;AACtC,cAAc,iBAAiB;AAC/B,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,KAA+B,GAAG,EAMtC;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACtKA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,IAA8B;AACtC,QAAQ,eAAkB;AAC1B,QAAQ,gBAAmB;AAC3B;AACA;AACA;AACA;;AAEA,YAAY,IAA6C;AACzD,YAAY,mCAAO;AACnB;AACA;AACA;AACA;AACA,aAAa;AAAA,kGAAC;AACd;AACA;AACA;AACA,CAAC,IAAI;;;;;;;;;;;;;;;;;ACtO0C;;AAE/C;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC,cAAc,mBAAmB;AACjC;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,gGAAgG;AAC9G;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,qCAAqC;AACnD;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA,qBAAqB;;AAErB,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,kBAAkB;AAC7B;AACe;AACf;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,gEAAW;AACnB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB;AACA,WAAW,aAAa;AACxB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpNA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;;;;;;;;;;;;;;;;;ACJqD;AACrD;AACA,+BAA+B,gEAAgB;AAC/C;;;;;;;;;;;;;;;;ACHA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;;;;;;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","sources":["webpack://formidable/./node_modules/@tannin/compile/index.js","webpack://formidable/./node_modules/@tannin/evaluate/index.js","webpack://formidable/./node_modules/@tannin/plural-forms/index.js","webpack://formidable/./node_modules/@tannin/postfix/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createAddHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createCurrentHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDidHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createDoingHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHasHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createHooks.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRemoveHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/createRunHook.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/index.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateHookName.js","webpack://formidable/./node_modules/@wordpress/hooks/build-module/validateNamespace.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/create-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/default-i18n.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/index.js","webpack://formidable/./node_modules/@wordpress/i18n/build-module/sprintf.js","webpack://formidable/./js/src/admin/components/dependent-updater-component.js","webpack://formidable/./node_modules/memize/index.js","webpack://formidable/./node_modules/sprintf-js/src/sprintf.js","webpack://formidable/./node_modules/tannin/index.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://formidable/./node_modules/@wordpress/hooks/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://formidable/./node_modules/@wordpress/i18n/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://formidable/webpack/bootstrap","webpack://formidable/webpack/runtime/compat get default export","webpack://formidable/webpack/runtime/define property getters","webpack://formidable/webpack/runtime/hasOwnProperty shorthand","webpack://formidable/webpack/runtime/make namespace object","webpack://formidable/./js/src/admin/styles.js"],"sourcesContent":["import postfix from '@tannin/postfix';\nimport evaluate from '@tannin/evaluate';\n\n/**\n * Given a C expression, returns a function which can be called to evaluate its\n * result.\n *\n * @example\n *\n * ```js\n * import compile from '@tannin/compile';\n *\n * const evaluate = compile( 'n > 1' );\n *\n * evaluate( { n: 2 } );\n * // ⇒ true\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator.\n */\nexport default function compile( expression ) {\n\tvar terms = postfix( expression );\n\n\treturn function( variables ) {\n\t\treturn evaluate( terms, variables );\n\t};\n}\n","/**\n * Operator callback functions.\n *\n * @type {Object}\n */\nvar OPERATORS = {\n\t'!': function( a ) {\n\t\treturn ! a;\n\t},\n\t'*': function( a, b ) {\n\t\treturn a * b;\n\t},\n\t'/': function( a, b ) {\n\t\treturn a / b;\n\t},\n\t'%': function( a, b ) {\n\t\treturn a % b;\n\t},\n\t'+': function( a, b ) {\n\t\treturn a + b;\n\t},\n\t'-': function( a, b ) {\n\t\treturn a - b;\n\t},\n\t'<': function( a, b ) {\n\t\treturn a < b;\n\t},\n\t'<=': function( a, b ) {\n\t\treturn a <= b;\n\t},\n\t'>': function( a, b ) {\n\t\treturn a > b;\n\t},\n\t'>=': function( a, b ) {\n\t\treturn a >= b;\n\t},\n\t'==': function( a, b ) {\n\t\treturn a === b;\n\t},\n\t'!=': function( a, b ) {\n\t\treturn a !== b;\n\t},\n\t'&&': function( a, b ) {\n\t\treturn a && b;\n\t},\n\t'||': function( a, b ) {\n\t\treturn a || b;\n\t},\n\t'?:': function( a, b, c ) {\n\t\tif ( a ) {\n\t\t\tthrow b;\n\t\t}\n\n\t\treturn c;\n\t},\n};\n\n/**\n * Given an array of postfix terms and operand variables, returns the result of\n * the postfix evaluation.\n *\n * @example\n *\n * ```js\n * import evaluate from '@tannin/evaluate';\n *\n * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +'\n * const terms = [ '3', '4', '5', '*', '6', '/', '+' ];\n *\n * evaluate( terms, {} );\n * // ⇒ 6.333333333333334\n * ```\n *\n * @param {string[]} postfix Postfix terms.\n * @param {Object} variables Operand variables.\n *\n * @return {*} Result of evaluation.\n */\nexport default function evaluate( postfix, variables ) {\n\tvar stack = [],\n\t\ti, j, args, getOperatorResult, term, value;\n\n\tfor ( i = 0; i < postfix.length; i++ ) {\n\t\tterm = postfix[ i ];\n\n\t\tgetOperatorResult = OPERATORS[ term ];\n\t\tif ( getOperatorResult ) {\n\t\t\t// Pop from stack by number of function arguments.\n\t\t\tj = getOperatorResult.length;\n\t\t\targs = Array( j );\n\t\t\twhile ( j-- ) {\n\t\t\t\targs[ j ] = stack.pop();\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tvalue = getOperatorResult.apply( null, args );\n\t\t\t} catch ( earlyReturn ) {\n\t\t\t\treturn earlyReturn;\n\t\t\t}\n\t\t} else if ( variables.hasOwnProperty( term ) ) {\n\t\t\tvalue = variables[ term ];\n\t\t} else {\n\t\t\tvalue = +term;\n\t\t}\n\n\t\tstack.push( value );\n\t}\n\n\treturn stack[ 0 ];\n}\n","import compile from '@tannin/compile';\n\n/**\n * Given a C expression, returns a function which, when called with a value,\n * evaluates the result with the value assumed to be the \"n\" variable of the\n * expression. The result will be coerced to its numeric equivalent.\n *\n * @param {string} expression C expression.\n *\n * @return {Function} Evaluator function.\n */\nexport default function pluralForms( expression ) {\n\tvar evaluate = compile( expression );\n\n\treturn function( n ) {\n\t\treturn +evaluate( { n: n } );\n\t};\n}\n","var PRECEDENCE, OPENERS, TERMINATORS, PATTERN;\n\n/**\n * Operator precedence mapping.\n *\n * @type {Object}\n */\nPRECEDENCE = {\n\t'(': 9,\n\t'!': 8,\n\t'*': 7,\n\t'/': 7,\n\t'%': 7,\n\t'+': 6,\n\t'-': 6,\n\t'<': 5,\n\t'<=': 5,\n\t'>': 5,\n\t'>=': 5,\n\t'==': 4,\n\t'!=': 4,\n\t'&&': 3,\n\t'||': 2,\n\t'?': 1,\n\t'?:': 1,\n};\n\n/**\n * Characters which signal pair opening, to be terminated by terminators.\n *\n * @type {string[]}\n */\nOPENERS = [ '(', '?' ];\n\n/**\n * Characters which signal pair termination, the value an array with the\n * opener as its first member. The second member is an optional operator\n * replacement to push to the stack.\n *\n * @type {string[]}\n */\nTERMINATORS = {\n\t')': [ '(' ],\n\t':': [ '?', '?:' ],\n};\n\n/**\n * Pattern matching operators and openers.\n *\n * @type {RegExp}\n */\nPATTERN = /<=|>=|==|!=|&&|\\|\\||\\?:|\\(|!|\\*|\\/|%|\\+|-|<|>|\\?|\\)|:/;\n\n/**\n * Given a C expression, returns the equivalent postfix (Reverse Polish)\n * notation terms as an array.\n *\n * If a postfix string is desired, simply `.join( ' ' )` the result.\n *\n * @example\n *\n * ```js\n * import postfix from '@tannin/postfix';\n *\n * postfix( 'n > 1' );\n * // ⇒ [ 'n', '1', '>' ]\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {string[]} Postfix terms.\n */\nexport default function postfix( expression ) {\n\tvar terms = [],\n\t\tstack = [],\n\t\tmatch, operator, term, element;\n\n\twhile ( ( match = expression.match( PATTERN ) ) ) {\n\t\toperator = match[ 0 ];\n\n\t\t// Term is the string preceding the operator match. It may contain\n\t\t// whitespace, and may be empty (if operator is at beginning).\n\t\tterm = expression.substr( 0, match.index ).trim();\n\t\tif ( term ) {\n\t\t\tterms.push( term );\n\t\t}\n\n\t\twhile ( ( element = stack.pop() ) ) {\n\t\t\tif ( TERMINATORS[ operator ] ) {\n\t\t\t\tif ( TERMINATORS[ operator ][ 0 ] === element ) {\n\t\t\t\t\t// Substitution works here under assumption that because\n\t\t\t\t\t// the assigned operator will no longer be a terminator, it\n\t\t\t\t\t// will be pushed to the stack during the condition below.\n\t\t\t\t\toperator = TERMINATORS[ operator ][ 1 ] || operator;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) {\n\t\t\t\t// Push to stack if either an opener or when pop reveals an\n\t\t\t\t// element of lower precedence.\n\t\t\t\tstack.push( element );\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// For each popped from stack, push to terms.\n\t\t\tterms.push( element );\n\t\t}\n\n\t\tif ( ! TERMINATORS[ operator ] ) {\n\t\t\tstack.push( operator );\n\t\t}\n\n\t\t// Slice matched fragment from expression to continue match.\n\t\texpression = expression.substr( match.index + operator.length );\n\t}\n\n\t// Push remainder of operand, if exists, to terms.\n\texpression = expression.trim();\n\tif ( expression ) {\n\t\tterms.push( expression );\n\t}\n\n\t// Pop remaining items from stack into terms.\n\treturn terms.concat( stack.reverse() );\n}\n","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback AddHook\n *\n * Adds the hook to the appropriate hooks container.\n *\n * @param {string} hookName Name of hook to add\n * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.\n * @param {import('.').Callback} callback Function to call when the hook is run\n * @param {number} [priority=10] Priority of this hook\n */\n\n/**\n * Returns a function which, when invoked, will add a hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {AddHook} Function that adds a new hook.\n */\n\nfunction createAddHook(hooks, storeKey) {\n return function addHook(hookName, namespace, callback) {\n var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!validateNamespace(namespace)) {\n return;\n }\n\n if ('function' !== typeof callback) {\n // eslint-disable-next-line no-console\n console.error('The hook callback must be a function.');\n return;\n } // Validate numeric priority\n\n\n if ('number' !== typeof priority) {\n // eslint-disable-next-line no-console\n console.error('If specified, the hook priority must be a number.');\n return;\n }\n\n var handler = {\n callback: callback,\n priority: priority,\n namespace: namespace\n };\n\n if (hooksStore[hookName]) {\n // Find the correct insert index of the new hook.\n var handlers = hooksStore[hookName].handlers;\n /** @type {number} */\n\n var i;\n\n for (i = handlers.length; i > 0; i--) {\n if (priority >= handlers[i - 1].priority) {\n break;\n }\n }\n\n if (i === handlers.length) {\n // If append, operate via direct assignment.\n handlers[i] = handler;\n } else {\n // Otherwise, insert before index via splice.\n handlers.splice(i, 0, handler);\n } // We may also be currently executing this hook. If the callback\n // we're adding would come after the current callback, there's no\n // problem; otherwise we need to increase the execution index of\n // any other runs by 1 to account for the added element.\n\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex++;\n }\n });\n } else {\n // This is the first hook of its type.\n hooksStore[hookName] = {\n handlers: [handler],\n runs: 0\n };\n }\n\n if (hookName !== 'hookAdded') {\n hooks.doAction('hookAdded', hookName, namespace, callback, priority);\n }\n };\n}\n\nexport default createAddHook;\n//# sourceMappingURL=createAddHook.js.map","/**\n * Returns a function which, when invoked, will return the name of the\n * currently running hook, or `null` if no hook of the given type is currently\n * running.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {() => string | null} Function that returns the current hook name or null.\n */\nfunction createCurrentHook(hooks, storeKey) {\n return function currentHook() {\n var _hooksStore$__current, _hooksStore$__current2;\n\n var hooksStore = hooks[storeKey];\n return (_hooksStore$__current = (_hooksStore$__current2 = hooksStore.__current[hooksStore.__current.length - 1]) === null || _hooksStore$__current2 === void 0 ? void 0 : _hooksStore$__current2.name) !== null && _hooksStore$__current !== void 0 ? _hooksStore$__current : null;\n };\n}\n\nexport default createCurrentHook;\n//# sourceMappingURL=createCurrentHook.js.map","/**\n * Internal dependencies\n */\nimport validateHookName from './validateHookName.js';\n/**\n * @callback DidHook\n *\n * Returns the number of times an action has been fired.\n *\n * @param {string} hookName The hook name to check.\n *\n * @return {number | undefined} The number of times the hook has run.\n */\n\n/**\n * Returns a function which, when invoked, will return the number of times a\n * hook has been called.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DidHook} Function that returns a hook's call count.\n */\n\nfunction createDidHook(hooks, storeKey) {\n return function didHook(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n return hooksStore[hookName] && hooksStore[hookName].runs ? hooksStore[hookName].runs : 0;\n };\n}\n\nexport default createDidHook;\n//# sourceMappingURL=createDidHook.js.map","/**\n * @callback DoingHook\n * Returns whether a hook is currently being executed.\n *\n * @param {string} [hookName] The name of the hook to check for. If\n * omitted, will check for any hook being executed.\n *\n * @return {boolean} Whether the hook is being executed.\n */\n\n/**\n * Returns a function which, when invoked, will return whether a hook is\n * currently being executed.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {DoingHook} Function that returns whether a hook is currently\n * being executed.\n */\nfunction createDoingHook(hooks, storeKey) {\n return function doingHook(hookName) {\n var hooksStore = hooks[storeKey]; // If the hookName was not passed, check for any current hook.\n\n if ('undefined' === typeof hookName) {\n return 'undefined' !== typeof hooksStore.__current[0];\n } // Return the __current hook.\n\n\n return hooksStore.__current[0] ? hookName === hooksStore.__current[0].name : false;\n };\n}\n\nexport default createDoingHook;\n//# sourceMappingURL=createDoingHook.js.map","/**\n * @callback HasHook\n *\n * Returns whether any handlers are attached for the given hookName and optional namespace.\n *\n * @param {string} hookName The name of the hook to check for.\n * @param {string} [namespace] Optional. The unique namespace identifying the callback\n * in the form `vendor/plugin/function`.\n *\n * @return {boolean} Whether there are handlers that are attached to the given hook.\n */\n\n/**\n * Returns a function which, when invoked, will return whether any handlers are\n * attached to a particular hook.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n *\n * @return {HasHook} Function that returns whether any handlers are\n * attached to a particular hook and optional namespace.\n */\nfunction createHasHook(hooks, storeKey) {\n return function hasHook(hookName, namespace) {\n var hooksStore = hooks[storeKey]; // Use the namespace if provided.\n\n if ('undefined' !== typeof namespace) {\n return hookName in hooksStore && hooksStore[hookName].handlers.some(function (hook) {\n return hook.namespace === namespace;\n });\n }\n\n return hookName in hooksStore;\n };\n}\n\nexport default createHasHook;\n//# sourceMappingURL=createHasHook.js.map","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\n\n/**\n * Internal dependencies\n */\nimport createAddHook from './createAddHook';\nimport createRemoveHook from './createRemoveHook';\nimport createHasHook from './createHasHook';\nimport createRunHook from './createRunHook';\nimport createCurrentHook from './createCurrentHook';\nimport createDoingHook from './createDoingHook';\nimport createDidHook from './createDidHook';\n/**\n * Internal class for constructing hooks. Use `createHooks()` function\n *\n * Note, it is necessary to expose this class to make its type public.\n *\n * @private\n */\n\nexport var _Hooks = function _Hooks() {\n _classCallCheck(this, _Hooks);\n\n /** @type {import('.').Store} actions */\n this.actions = Object.create(null);\n this.actions.__current = [];\n /** @type {import('.').Store} filters */\n\n this.filters = Object.create(null);\n this.filters.__current = [];\n this.addAction = createAddHook(this, 'actions');\n this.addFilter = createAddHook(this, 'filters');\n this.removeAction = createRemoveHook(this, 'actions');\n this.removeFilter = createRemoveHook(this, 'filters');\n this.hasAction = createHasHook(this, 'actions');\n this.hasFilter = createHasHook(this, 'filters');\n this.removeAllActions = createRemoveHook(this, 'actions', true);\n this.removeAllFilters = createRemoveHook(this, 'filters', true);\n this.doAction = createRunHook(this, 'actions');\n this.applyFilters = createRunHook(this, 'filters', true);\n this.currentAction = createCurrentHook(this, 'actions');\n this.currentFilter = createCurrentHook(this, 'filters');\n this.doingAction = createDoingHook(this, 'actions');\n this.doingFilter = createDoingHook(this, 'filters');\n this.didAction = createDidHook(this, 'actions');\n this.didFilter = createDidHook(this, 'filters');\n};\n/** @typedef {_Hooks} Hooks */\n\n/**\n * Returns an instance of the hooks object.\n *\n * @return {Hooks} A Hooks instance.\n */\n\nfunction createHooks() {\n return new _Hooks();\n}\n\nexport default createHooks;\n//# sourceMappingURL=createHooks.js.map","/**\n * Internal dependencies\n */\nimport validateNamespace from './validateNamespace.js';\nimport validateHookName from './validateHookName.js';\n/**\n * @callback RemoveHook\n * Removes the specified callback (or all callbacks) from the hook with a given hookName\n * and namespace.\n *\n * @param {string} hookName The name of the hook to modify.\n * @param {string} namespace The unique namespace identifying the callback in the\n * form `vendor/plugin/function`.\n *\n * @return {number | undefined} The number of callbacks removed.\n */\n\n/**\n * Returns a function which, when invoked, will remove a specified hook or all\n * hooks by the given name.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [removeAll=false] Whether to remove all callbacks for a hookName,\n * without regard to namespace. Used to create\n * `removeAll*` functions.\n *\n * @return {RemoveHook} Function that removes hooks.\n */\n\nfunction createRemoveHook(hooks, storeKey) {\n var removeAll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function removeHook(hookName, namespace) {\n var hooksStore = hooks[storeKey];\n\n if (!validateHookName(hookName)) {\n return;\n }\n\n if (!removeAll && !validateNamespace(namespace)) {\n return;\n } // Bail if no hooks exist by this name\n\n\n if (!hooksStore[hookName]) {\n return 0;\n }\n\n var handlersRemoved = 0;\n\n if (removeAll) {\n handlersRemoved = hooksStore[hookName].handlers.length;\n hooksStore[hookName] = {\n runs: hooksStore[hookName].runs,\n handlers: []\n };\n } else {\n // Try to find the specified callback to remove.\n var handlers = hooksStore[hookName].handlers;\n\n var _loop = function _loop(i) {\n if (handlers[i].namespace === namespace) {\n handlers.splice(i, 1);\n handlersRemoved++; // This callback may also be part of a hook that is\n // currently executing. If the callback we're removing\n // comes after the current callback, there's no problem;\n // otherwise we need to decrease the execution index of any\n // other runs by 1 to account for the removed element.\n\n hooksStore.__current.forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex--;\n }\n });\n }\n };\n\n for (var i = handlers.length - 1; i >= 0; i--) {\n _loop(i);\n }\n }\n\n if (hookName !== 'hookRemoved') {\n hooks.doAction('hookRemoved', hookName, namespace);\n }\n\n return handlersRemoved;\n };\n}\n\nexport default createRemoveHook;\n//# sourceMappingURL=createRemoveHook.js.map","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\n\n/**\n * Returns a function which, when invoked, will execute all callbacks\n * registered to a hook of the specified type, optionally returning the final\n * value of the call chain.\n *\n * @param {import('.').Hooks} hooks Hooks instance.\n * @param {import('.').StoreKey} storeKey\n * @param {boolean} [returnFirstArg=false] Whether each hook callback is expected to\n * return its first argument.\n *\n * @return {(hookName:string, ...args: unknown[]) => unknown} Function that runs hook callbacks.\n */\nfunction createRunHook(hooks, storeKey) {\n var returnFirstArg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return function runHooks(hookName) {\n var hooksStore = hooks[storeKey];\n\n if (!hooksStore[hookName]) {\n hooksStore[hookName] = {\n handlers: [],\n runs: 0\n };\n }\n\n hooksStore[hookName].runs++;\n var handlers = hooksStore[hookName].handlers; // The following code is stripped from production builds.\n\n if ('production' !== process.env.NODE_ENV) {\n // Handle any 'all' hooks registered.\n if ('hookAdded' !== hookName && hooksStore.all) {\n handlers.push.apply(handlers, _toConsumableArray(hooksStore.all.handlers));\n }\n }\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!handlers || !handlers.length) {\n return returnFirstArg ? args[0] : undefined;\n }\n\n var hookInfo = {\n name: hookName,\n currentIndex: 0\n };\n\n hooksStore.__current.push(hookInfo);\n\n while (hookInfo.currentIndex < handlers.length) {\n var handler = handlers[hookInfo.currentIndex];\n var result = handler.callback.apply(null, args);\n\n if (returnFirstArg) {\n args[0] = result;\n }\n\n hookInfo.currentIndex++;\n }\n\n hooksStore.__current.pop();\n\n if (returnFirstArg) {\n return args[0];\n }\n };\n}\n\nexport default createRunHook;\n//# sourceMappingURL=createRunHook.js.map","/**\n * Internal dependencies\n */\nimport createHooks from './createHooks';\n/** @typedef {(...args: any[])=>any} Callback */\n\n/**\n * @typedef Handler\n * @property {Callback} callback The callback\n * @property {string} namespace The namespace\n * @property {number} priority The namespace\n */\n\n/**\n * @typedef Hook\n * @property {Handler[]} handlers Array of handlers\n * @property {number} runs Run counter\n */\n\n/**\n * @typedef Current\n * @property {string} name Hook name\n * @property {number} currentIndex The index\n */\n\n/**\n * @typedef {Record & {__current: Current[]}} Store\n */\n\n/**\n * @typedef {'actions' | 'filters'} StoreKey\n */\n\n/**\n * @typedef {import('./createHooks').Hooks} Hooks\n */\n\nexport var defaultHooks = createHooks();\nvar addAction = defaultHooks.addAction,\n addFilter = defaultHooks.addFilter,\n removeAction = defaultHooks.removeAction,\n removeFilter = defaultHooks.removeFilter,\n hasAction = defaultHooks.hasAction,\n hasFilter = defaultHooks.hasFilter,\n removeAllActions = defaultHooks.removeAllActions,\n removeAllFilters = defaultHooks.removeAllFilters,\n doAction = defaultHooks.doAction,\n applyFilters = defaultHooks.applyFilters,\n currentAction = defaultHooks.currentAction,\n currentFilter = defaultHooks.currentFilter,\n doingAction = defaultHooks.doingAction,\n doingFilter = defaultHooks.doingFilter,\n didAction = defaultHooks.didAction,\n didFilter = defaultHooks.didFilter,\n actions = defaultHooks.actions,\n filters = defaultHooks.filters;\nexport { createHooks, addAction, addFilter, removeAction, removeFilter, hasAction, hasFilter, removeAllActions, removeAllFilters, doAction, applyFilters, currentAction, currentFilter, doingAction, doingFilter, didAction, didFilter, actions, filters };\n//# sourceMappingURL=index.js.map","/**\n * Validate a hookName string.\n *\n * @param {string} hookName The hook name to validate. Should be a non empty string containing\n * only numbers, letters, dashes, periods and underscores. Also,\n * the hook name cannot begin with `__`.\n *\n * @return {boolean} Whether the hook name is valid.\n */\nfunction validateHookName(hookName) {\n if ('string' !== typeof hookName || '' === hookName) {\n // eslint-disable-next-line no-console\n console.error('The hook name must be a non-empty string.');\n return false;\n }\n\n if (/^__/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name cannot begin with `__`.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.');\n return false;\n }\n\n return true;\n}\n\nexport default validateHookName;\n//# sourceMappingURL=validateHookName.js.map","/**\n * Validate a namespace string.\n *\n * @param {string} namespace The namespace to validate - should take the form\n * `vendor/plugin/function`.\n *\n * @return {boolean} Whether the namespace is valid.\n */\nfunction validateNamespace(namespace) {\n if ('string' !== typeof namespace || '' === namespace) {\n // eslint-disable-next-line no-console\n console.error('The namespace must be a non-empty string.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.\\-\\/]*$/.test(namespace)) {\n // eslint-disable-next-line no-console\n console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.');\n return false;\n }\n\n return true;\n}\n\nexport default validateNamespace;\n//# sourceMappingURL=validateNamespace.js.map","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\nimport Tannin from 'tannin';\n/**\n * @typedef {Record} LocaleData\n */\n\n/**\n * Default locale data to use for Tannin domain when not otherwise provided.\n * Assumes an English plural forms expression.\n *\n * @type {LocaleData}\n */\n\nvar DEFAULT_LOCALE_DATA = {\n '': {\n /** @param {number} n */\n plural_forms: function plural_forms(n) {\n return n === 1 ? 0 : 1;\n }\n }\n};\n/*\n * Regular expression that matches i18n hooks like `i18n.gettext`, `i18n.ngettext`,\n * `i18n.gettext_domain` or `i18n.ngettext_with_context` or `i18n.has_translation`.\n */\n\nvar I18N_HOOK_REGEXP = /^i18n\\.(n?gettext|has_translation)(_|$)/;\n/**\n * @typedef {(domain?: string) => LocaleData} GetLocaleData\n *\n * Returns locale data by domain in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} SetLocaleData\n *\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/**\n * @typedef {(data?: LocaleData, domain?: string) => void} ResetLocaleData\n *\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n */\n\n/** @typedef {() => void} SubscribeCallback */\n\n/** @typedef {() => void} UnsubscribeCallback */\n\n/**\n * @typedef {(callback: SubscribeCallback) => UnsubscribeCallback} Subscribe\n *\n * Subscribes to changes of locale data\n */\n\n/**\n * @typedef {(domain?: string) => string} GetFilterDomain\n * Retrieve the domain to use when calling domain-specific filters.\n */\n\n/**\n * @typedef {(text: string, domain?: string) => string} __\n *\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n */\n\n/**\n * @typedef {(text: string, context: string, domain?: string) => string} _x\n *\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, domain?: string) => string} _n\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n */\n\n/**\n * @typedef {(single: string, plural: string, number: number, context: string, domain?: string) => string} _nx\n *\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n */\n\n/**\n * @typedef {() => boolean} IsRtl\n *\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n */\n\n/**\n * @typedef {(single: string, context?: string, domain?: string) => boolean} HasTranslation\n *\n * Check if there is a translation for a given string in singular form.\n */\n\n/** @typedef {import('@wordpress/hooks').Hooks} Hooks */\n\n/**\n * An i18n instance\n *\n * @typedef I18n\n * @property {GetLocaleData} getLocaleData Returns locale data by domain in a Jed-formatted JSON object shape.\n * @property {SetLocaleData} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n * @property {ResetLocaleData} resetLocaleData Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n * @property {Subscribe} subscribe Subscribes to changes of Tannin locale data.\n * @property {__} __ Retrieve the translation of text.\n * @property {_x} _x Retrieve translated string with gettext context.\n * @property {_n} _n Translates and retrieves the singular or plural form based on the supplied\n * number.\n * @property {_nx} _nx Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n * @property {IsRtl} isRTL Check if current locale is RTL.\n * @property {HasTranslation} hasTranslation Check if there is a translation for a given string.\n */\n\n/**\n * Create an i18n instance\n *\n * @param {LocaleData} [initialData] Locale data configuration.\n * @param {string} [initialDomain] Domain for which configuration applies.\n * @param {Hooks} [hooks] Hooks implementation.\n * @return {I18n} I18n instance\n */\n\nexport var createI18n = function createI18n(initialData, initialDomain, hooks) {\n /**\n * The underlying instance of Tannin to which exported functions interface.\n *\n * @type {Tannin}\n */\n var tannin = new Tannin({});\n var listeners = new Set();\n\n var notifyListeners = function notifyListeners() {\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n /**\n * Subscribe to changes of locale data.\n *\n * @param {SubscribeCallback} callback Subscription callback.\n * @return {UnsubscribeCallback} Unsubscribe callback.\n */\n\n\n var subscribe = function subscribe(callback) {\n listeners.add(callback);\n return function () {\n return listeners.delete(callback);\n };\n };\n /** @type {GetLocaleData} */\n\n\n var getLocaleData = function getLocaleData() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return tannin.data[domain];\n };\n /**\n * @param {LocaleData} [data]\n * @param {string} [domain]\n */\n\n\n var doSetLocaleData = function doSetLocaleData(data) {\n var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n tannin.data[domain] = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA), tannin.data[domain]), data); // Populate default domain configuration (supported locale date which omits\n // a plural forms expression).\n\n tannin.data[domain][''] = _objectSpread(_objectSpread({}, DEFAULT_LOCALE_DATA['']), tannin.data[domain]['']);\n };\n /** @type {SetLocaleData} */\n\n\n var setLocaleData = function setLocaleData(data, domain) {\n doSetLocaleData(data, domain);\n notifyListeners();\n };\n /** @type {ResetLocaleData} */\n\n\n var resetLocaleData = function resetLocaleData(data, domain) {\n // Reset all current Tannin locale data.\n tannin.data = {}; // Reset cached plural forms functions cache.\n\n tannin.pluralForms = {};\n setLocaleData(data, domain);\n };\n /**\n * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not\n * otherwise previously assigned.\n *\n * @param {string|undefined} domain Domain to retrieve the translated text.\n * @param {string|undefined} context Context information for the translators.\n * @param {string} single Text to translate if non-plural. Used as\n * fallback return value on a caught error.\n * @param {string} [plural] The text to be used if the number is\n * plural.\n * @param {number} [number] The number to compare against to use\n * either the singular or plural form.\n *\n * @return {string} The translated string.\n */\n\n\n var dcnpgettext = function dcnpgettext() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n var context = arguments.length > 1 ? arguments[1] : undefined;\n var single = arguments.length > 2 ? arguments[2] : undefined;\n var plural = arguments.length > 3 ? arguments[3] : undefined;\n var number = arguments.length > 4 ? arguments[4] : undefined;\n\n if (!tannin.data[domain]) {\n // use `doSetLocaleData` to set silently, without notifying listeners\n doSetLocaleData(undefined, domain);\n }\n\n return tannin.dcnpgettext(domain, context, single, plural, number);\n };\n /** @type {GetFilterDomain} */\n\n\n var getFilterDomain = function getFilterDomain() {\n var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n return domain;\n };\n /** @type {__} */\n\n\n var __ = function __(text, domain) {\n var translation = dcnpgettext(domain, undefined, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext', translation, text, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_' + getFilterDomain(domain), translation, text, domain)\n );\n };\n /** @type {_x} */\n\n\n var _x = function _x(text, context, domain) {\n var translation = dcnpgettext(domain, context, text);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters text with its translation based on context information.\n *\n * @param {string} translation Translated text.\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context', translation, text, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.gettext_with_context_' + getFilterDomain(domain), translation, text, context, domain)\n );\n };\n /** @type {_n} */\n\n\n var _n = function _n(single, plural, number, domain) {\n var translation = dcnpgettext(domain, undefined, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext', translation, single, plural, number, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_' + getFilterDomain(domain), translation, single, plural, number, domain)\n );\n };\n /** @type {_nx} */\n\n\n var _nx = function _nx(single, plural, number, context, domain) {\n var translation = dcnpgettext(domain, context, single, plural, number);\n\n if (!hooks) {\n return translation;\n }\n /**\n * Filters the singular or plural form of a string with gettext context.\n *\n * @param {string} translation Translated text.\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {string} number The number to compare against to use either the singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n\n\n translation =\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context', translation, single, plural, number, context, domain);\n return (\n /** @type {string} */\n\n /** @type {*} */\n hooks.applyFilters('i18n.ngettext_with_context_' + getFilterDomain(domain), translation, single, plural, number, context, domain)\n );\n };\n /** @type {IsRtl} */\n\n\n var isRTL = function isRTL() {\n return 'rtl' === _x('ltr', 'text direction');\n };\n /** @type {HasTranslation} */\n\n\n var hasTranslation = function hasTranslation(single, context, domain) {\n var _tannin$data, _tannin$data2;\n\n var key = context ? context + \"\\x04\" + single : single;\n var result = !!((_tannin$data = tannin.data) !== null && _tannin$data !== void 0 && (_tannin$data2 = _tannin$data[domain !== null && domain !== void 0 ? domain : 'default']) !== null && _tannin$data2 !== void 0 && _tannin$data2[key]);\n\n if (hooks) {\n /**\n * Filters the presence of a translation in the locale data.\n *\n * @param {boolean} hasTranslation Whether the translation is present or not..\n * @param {string} single The singular form of the translated text (used as key in locale data)\n * @param {string} context Context information for the translators.\n * @param {string} domain Text domain. Unique identifier for retrieving translated strings.\n */\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation', result, single, context, domain);\n result =\n /** @type { boolean } */\n\n /** @type {*} */\n hooks.applyFilters('i18n.has_translation_' + getFilterDomain(domain), result, single, context, domain);\n }\n\n return result;\n };\n\n if (initialData) {\n setLocaleData(initialData, initialDomain);\n }\n\n if (hooks) {\n /**\n * @param {string} hookName\n */\n var onHookAddedOrRemoved = function onHookAddedOrRemoved(hookName) {\n if (I18N_HOOK_REGEXP.test(hookName)) {\n notifyListeners();\n }\n };\n\n hooks.addAction('hookAdded', 'core/i18n', onHookAddedOrRemoved);\n hooks.addAction('hookRemoved', 'core/i18n', onHookAddedOrRemoved);\n }\n\n return {\n getLocaleData: getLocaleData,\n setLocaleData: setLocaleData,\n resetLocaleData: resetLocaleData,\n subscribe: subscribe,\n __: __,\n _x: _x,\n _n: _n,\n _nx: _nx,\n isRTL: isRTL,\n hasTranslation: hasTranslation\n };\n};\n//# sourceMappingURL=create-i18n.js.map","/**\n * Internal dependencies\n */\nimport { createI18n } from './create-i18n';\n/**\n * WordPress dependencies\n */\n\nimport { defaultHooks } from '@wordpress/hooks';\nvar i18n = createI18n(undefined, undefined, defaultHooks);\n/**\n * Default, singleton instance of `I18n`.\n */\n\nexport default i18n;\n/*\n * Comments in this file are duplicated from ./i18n due to\n * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722\n */\n\n/**\n * @typedef {import('./create-i18n').LocaleData} LocaleData\n * @typedef {import('./create-i18n').SubscribeCallback} SubscribeCallback\n * @typedef {import('./create-i18n').UnsubscribeCallback} UnsubscribeCallback\n */\n\n/**\n * Returns locale data by domain in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {string} [domain] Domain for which to get the data.\n * @return {LocaleData} Locale data.\n */\n\nexport var getLocaleData = i18n.getLocaleData.bind(i18n);\n/**\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var setLocaleData = i18n.setLocaleData.bind(i18n);\n/**\n * Resets all current Tannin instance locale data and sets the specified\n * locale data for the domain. Accepts data in a Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data] Locale data configuration.\n * @param {string} [domain] Domain for which configuration applies.\n */\n\nexport var resetLocaleData = i18n.resetLocaleData.bind(i18n);\n/**\n * Subscribes to changes of locale data\n *\n * @param {SubscribeCallback} callback Subscription callback\n * @return {UnsubscribeCallback} Unsubscribe callback\n */\n\nexport var subscribe = i18n.subscribe.bind(i18n);\n/**\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n *\n * @param {string} text Text to translate.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated text.\n */\n\nexport var __ = i18n.__.bind(i18n);\n/**\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n *\n * @param {string} text Text to translate.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated context string without pipe.\n */\n\nexport var _x = i18n._x.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _n = i18n._n.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n *\n * @param {string} single The text to be used if the number is singular.\n * @param {string} plural The text to be used if the number is plural.\n * @param {number} number The number to compare against to use either the\n * singular or plural form.\n * @param {string} context Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nexport var _nx = i18n._nx.bind(i18n);\n/**\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n *\n * @return {boolean} Whether locale is RTL.\n */\n\nexport var isRTL = i18n.isRTL.bind(i18n);\n/**\n * Check if there is a translation for a given string (in singular form).\n *\n * @param {string} single Singular form of the string to look up.\n * @param {string} [context] Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n * @return {boolean} Whether the translation exists or not.\n */\n\nexport var hasTranslation = i18n.hasTranslation.bind(i18n);\n//# sourceMappingURL=default-i18n.js.map","export { sprintf } from './sprintf';\nexport * from './create-i18n';\nexport { default as defaultI18n, setLocaleData, resetLocaleData, getLocaleData, subscribe, __, _x, _n, _nx, isRTL, hasTranslation } from './default-i18n';\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\nimport memoize from 'memize';\nimport sprintfjs from 'sprintf-js';\n/**\n * Log to console, once per message; or more precisely, per referentially equal\n * argument set. Because Jed throws errors, we log these to the console instead\n * to avoid crashing the application.\n *\n * @param {...*} args Arguments to pass to `console.error`\n */\n\nvar logErrorOnce = memoize(console.error); // eslint-disable-line no-console\n\n/**\n * Returns a formatted string. If an error occurs in applying the format, the\n * original format string is returned.\n *\n * @param {string} format The format of the string to generate.\n * @param {...*} args Arguments to apply to the format.\n *\n * @see https://www.npmjs.com/package/sprintf-js\n *\n * @return {string} The formatted string.\n */\n\nexport function sprintf(format) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return sprintfjs.sprintf.apply(sprintfjs, [format].concat(args));\n } catch (error) {\n logErrorOnce('sprintf error: \\n\\n' + error.toString());\n return format;\n }\n}\n//# sourceMappingURL=sprintf.js.map","/**\n * This component updates the dependent style element's values and triggers a custom change event for each style element, initiating the style preview.\n * The names of the elements that will be updated are specified using the \"will-change\" attribute.\n * It is primarily used in components from Style/Quick Settings.\n * For instance, when the \"FrmPrimaryColorStyleComponent\" is changed, it simultaneously updates various style elements like border color, text color, and button backgrounds.\n */\nexport default class frmStyleDependentUpdaterComponent {\n\t/**\n\t * Creates an instance of frmStyleDependentUpdaterComponent.\n\t * @param {HTMLElement} component - The component element.\n\t */\n\tconstructor( component ) {\n\t\tthis.component = component;\n\t\ttry {\n\t\t\tconst willChangeData = JSON.parse( this.component.dataset.willChange );\n\t\t\tthis.data = {\n\t\t\t\tpropagateInputs: this.initPropagationList( willChangeData ),\n\t\t\t\tchangeEvent: new Event( 'change', { bubbles: true } )\n\t\t\t};\n\t\t} catch ( error ) {\n\t\t\tconsole.error( 'Error parsing JSON data from \"will-change\" attribute.', error );\n\t\t}\n\t}\n\n\t/**\n\t * Initializes the list of inputs to propagate changes to.\n\t * The selection is made by provided input's names list in \"will-change\" attribute.\n\t * @param {string[]} inputNames - The names of the inputs to propagate changes to.\n\t * @return {HTMLElement[]} - The list of inputs to propagate changes to.\n\t */\n\tinitPropagationList( inputNames ) {\n\t\tconst list = [];\n\t\tinputNames.forEach( name => {\n\t\t\tconst input = document.querySelector( `input[name=\"${ name }\"]` );\n\t\t\tif ( null !== input ) {\n\t\t\t\tlist.push( input );\n\t\t\t}\n\t\t} );\n\t\treturn list;\n\t}\n\n\t/**\n\t * Updates all dependent elements with the given value.\n\t * @param {string} value - The value to update the dependent elements with.\n\t */\n\tupdateAllDependentElements( value ) {\n\t\tthis.data.propagateInputs.forEach( input => {\n\t\t\tinput.value = value;\n\t\t} );\n\t\tthis.data.propagateInputs[ 0 ].dispatchEvent( this.data.changeEvent );\n\t}\n}\n","/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>} args Function arguments for cache\n * entry.\n * @property {*} val Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F} fn Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( process.env.NODE_ENV === 'test' ) {\n\t\t// Cache is not exposed in the public API, but used in tests to ensure\n\t\t// expected list progression\n\t\tmemoized.getCache = function() {\n\t\t\treturn [ head, tail, size ];\n\t\t};\n\t}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n","/* global window, exports, define */\n\n!function() {\n 'use strict'\n\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n }\n\n function sprintf(key) {\n // `arguments` is not an array, but should be fine for this call\n return sprintf_format(sprintf_parse(key), arguments)\n }\n\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []))\n }\n\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === 'string') {\n output += parse_tree[i]\n }\n else if (typeof parse_tree[i] === 'object') {\n ph = parse_tree[i] // convenience purposes only\n if (ph.keys) { // keyword argument\n arg = argv[cursor]\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == undefined) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n }\n arg = arg[ph.keys[k]]\n }\n }\n else if (ph.param_no) { // positional argument (explicit)\n arg = argv[ph.param_no]\n }\n else { // positional argument (implicit)\n arg = argv[cursor++]\n }\n\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg()\n }\n\n if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n }\n\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt]\n }\n\n var _fmt = fmt, match, parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0])\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n )\n }\n else {\n throw new SyntaxError('[sprintf] unexpected placeholder')\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return sprintf_cache[fmt] = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports['sprintf'] = sprintf\n exports['vsprintf'] = vsprintf\n }\n if (typeof window !== 'undefined') {\n window['sprintf'] = sprintf\n window['vsprintf'] = vsprintf\n\n if (typeof define === 'function' && define['amd']) {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n","import pluralForms from '@tannin/plural-forms';\n\n/**\n * Tannin constructor options.\n *\n * @typedef {Object} TanninOptions\n *\n * @property {string} [contextDelimiter] Joiner in string lookup with context.\n * @property {Function} [onMissingKey] Callback to invoke when key missing.\n */\n\n/**\n * Domain metadata.\n *\n * @typedef {Object} TanninDomainMetadata\n *\n * @property {string} [domain] Domain name.\n * @property {string} [lang] Language code.\n * @property {(string|Function)} [plural_forms] Plural forms expression or\n * function evaluator.\n */\n\n/**\n * Domain translation pair respectively representing the singular and plural\n * translation.\n *\n * @typedef {[string,string]} TanninTranslation\n */\n\n/**\n * Locale data domain. The key is used as reference for lookup, the value an\n * array of two string entries respectively representing the singular and plural\n * translation.\n *\n * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain\n */\n\n/**\n * Jed-formatted locale data.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData\n */\n\n/**\n * Default Tannin constructor options.\n *\n * @type {TanninOptions}\n */\nvar DEFAULT_OPTIONS = {\n\tcontextDelimiter: '\\u0004',\n\tonMissingKey: null,\n};\n\n/**\n * Given a specific locale data's config `plural_forms` value, returns the\n * expression.\n *\n * @example\n *\n * ```\n * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)'\n * ```\n *\n * @param {string} pf Locale data plural forms.\n *\n * @return {string} Plural forms expression.\n */\nfunction getPluralExpression( pf ) {\n\tvar parts, i, part;\n\n\tparts = pf.split( ';' );\n\n\tfor ( i = 0; i < parts.length; i++ ) {\n\t\tpart = parts[ i ].trim();\n\t\tif ( part.indexOf( 'plural=' ) === 0 ) {\n\t\t\treturn part.substr( 7 );\n\t\t}\n\t}\n}\n\n/**\n * Tannin constructor.\n *\n * @class\n *\n * @param {TanninLocaleData} data Jed-formatted locale data.\n * @param {TanninOptions} [options] Tannin options.\n */\nexport default function Tannin( data, options ) {\n\tvar key;\n\n\t/**\n\t * Jed-formatted locale data.\n\t *\n\t * @name Tannin#data\n\t * @type {TanninLocaleData}\n\t */\n\tthis.data = data;\n\n\t/**\n\t * Plural forms function cache, keyed by plural forms string.\n\t *\n\t * @name Tannin#pluralForms\n\t * @type {Object}\n\t */\n\tthis.pluralForms = {};\n\n\t/**\n\t * Effective options for instance, including defaults.\n\t *\n\t * @name Tannin#options\n\t * @type {TanninOptions}\n\t */\n\tthis.options = {};\n\n\tfor ( key in DEFAULT_OPTIONS ) {\n\t\tthis.options[ key ] = options !== undefined && key in options\n\t\t\t? options[ key ]\n\t\t\t: DEFAULT_OPTIONS[ key ];\n\t}\n}\n\n/**\n * Returns the plural form index for the given domain and value.\n *\n * @param {string} domain Domain on which to calculate plural form.\n * @param {number} n Value for which plural form is to be calculated.\n *\n * @return {number} Plural form index.\n */\nTannin.prototype.getPluralForm = function( domain, n ) {\n\tvar getPluralForm = this.pluralForms[ domain ],\n\t\tconfig, plural, pf;\n\n\tif ( ! getPluralForm ) {\n\t\tconfig = this.data[ domain ][ '' ];\n\n\t\tpf = (\n\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t// @ts-ignore\n\t\t\tconfig.plural_forms\n\t\t);\n\n\t\tif ( typeof pf !== 'function' ) {\n\t\t\tplural = getPluralExpression(\n\t\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t\t// @ts-ignore\n\t\t\t\tconfig.plural_forms\n\t\t\t);\n\n\t\t\tpf = pluralForms( plural );\n\t\t}\n\n\t\tgetPluralForm = this.pluralForms[ domain ] = pf;\n\t}\n\n\treturn getPluralForm( n );\n};\n\n/**\n * Translate a string.\n *\n * @param {string} domain Translation domain.\n * @param {string|void} context Context distinguishing terms of the same name.\n * @param {string} singular Primary key for translation lookup.\n * @param {string=} plural Fallback value used for non-zero plural\n * form index.\n * @param {number=} n Value to use in calculating plural form.\n *\n * @return {string} Translated string.\n */\nTannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) {\n\tvar index, key, entry;\n\n\tif ( n === undefined ) {\n\t\t// Default to singular.\n\t\tindex = 0;\n\t} else {\n\t\t// Find index by evaluating plural form for value.\n\t\tindex = this.getPluralForm( domain, n );\n\t}\n\n\tkey = singular;\n\n\t// If provided, context is prepended to key with delimiter.\n\tif ( context ) {\n\t\tkey = context + this.options.contextDelimiter + singular;\n\t}\n\n\tentry = this.data[ domain ][ key ];\n\n\t// Verify not only that entry exists, but that the intended index is within\n\t// range and non-empty.\n\tif ( entry && entry[ index ] ) {\n\t\treturn entry[ index ];\n\t}\n\n\tif ( this.options.onMissingKey ) {\n\t\tthis.options.onMissingKey( singular, domain );\n\t}\n\n\t// If entry not found, fall back to singular vs. plural with zero index\n\t// representing the singular value.\n\treturn index === 0 ? singular : plural;\n};\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { __ } from '@wordpress/i18n';\nimport frmStyleDependentUpdaterComponent from './components/dependent-updater-component';\n\n/**\n * Represents the frmStyleOptions class.\n * @class\n */\nclass frmStyleOptions {\n\tconstructor() {\n\t\tthis.success = frmDom.success;\n\t\tthis.init();\n\t\tthis.initHover();\n\t}\n\n\t/**\n\t * Init the dependent\n\t */\n\tinit() {\n\t\tthis.initColorPickerDependentUpdaterComponents();\n\t\tthis.initStyleClassCopyToClipboard( __( 'The class name has been copied.', 'formidable' ) );\n\t}\n\n\t/**\n\t * Initializes the color picker dependent updater components.\n\t * Retrieves the components and elements, and adds them to the elements array.\n\t * Adds an action hook for the frm_style_options_color_change event.\n\t */\n\tinitColorPickerDependentUpdaterComponents() {\n\t\tconst components = document.querySelectorAll( '.frm-style-dependent-updater-component.frm-colorpicker' );\n\t\tconst elements = [];\n\n\t\tcomponents.forEach( component => {\n\t\t\tconst element = component.querySelector( 'input.hex' );\n\t\t\tconst id = 'undefined' !== typeof element ? element.getAttribute( 'id' ) : null;\n\n\t\t\tif ( null !== id ) {\n\t\t\t\telements.push( {\n\t\t\t\t\tid: id,\n\t\t\t\t\tdependentUpdaterClass: new frmStyleDependentUpdaterComponent( component, 'colorpicker' )\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\twp.hooks.addAction( 'frm_style_options_color_change', 'formidable', ( { event, value } ) => {\n\t\t\tconst container = event.target.closest( '.wp-picker-container' );\n\t\t\tconst id = event.target.getAttribute( 'id' );\n\n\t\t\tcontainer.querySelector( '.wp-color-result-text' ).innerText = value;\n\n\t\t\telements.forEach( element => {\n\t\t\t\tif ( element.id === id ) {\n\t\t\t\t\telement.dependentUpdaterClass.updateAllDependentElements( value );\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Initializes the hover functionality for the style options.\n\t * Creates a hover element and appends it to the settingsWrapper.\n\t * Adds event listeners for mouseover and click events.\n\t */\n\tinitHover() {\n\t\tconst settingsWrapper = document.querySelector( '.frm-right-panel .styling_settings .accordion-container' );\n\t\tif ( null === settingsWrapper ) {\n\t\t\treturn;\n\t\t}\n\t\tconst hoverElement = document.createElement( 'div' );\n\t\thoverElement.classList.add( 'frm_hidden' );\n\t\thoverElement.classList.add( 'frm-style-settings-hover' );\n\t\tsettingsWrapper.appendChild( hoverElement );\n\n\t\tconst styleOptionsMenu = settingsWrapper.querySelector( ':scope > ul' );\n\n\t\tstyleOptionsMenu.querySelectorAll( ':scope > li' ).forEach( item => {\n\t\t\titem.querySelector( 'h3' ).addEventListener( 'mouseover', event => {\n\t\t\t\thoverElement.style.transform = `translateY(${ event.target.closest( 'li' ).offsetTop }px)`;\n\t\t\t\thoverElement.classList.add( 'frm-animating' );\n\t\t\t\thoverElement.classList.remove( 'frm_hidden' );\n\t\t\t\tsetTimeout( () => {\n\t\t\t\t\thoverElement.classList.remove( 'frm-animating' );\n\t\t\t\t}, 250 );\n\t\t\t} );\n\t\t} );\n\n\t\tconst accordionitems = document.querySelectorAll( '#frm_style_sidebar .accordion-section h3' );\n\t\taccordionitems.forEach( item => {\n\t\t\titem.addEventListener( 'click', () => {\n\t\t\t\thoverElement.classList.add( 'frm_hidden' );\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Initializes the copy to clipboard functionality for style classes.\n\t * Adds a click event listener to the copyLabel element.\n\t * Copies the class name to the clipboard and displays a success message.\n\t * @param {string} successMessage - The success message to display.\n\t */\n\tinitStyleClassCopyToClipboard( successMessage ) {\n\t\tconst copyLabel = document.querySelector( '.frm-copy-text' );\n\t\tcopyLabel.addEventListener( 'click', event => {\n\t\t\tconst className = event.currentTarget.innerText;\n\t\t\tnavigator.clipboard.writeText( className ).then( () => {\n\t\t\t\tthis.success( successMessage );\n\t\t\t} );\n\t\t} );\n\t}\n}\n\nnew frmStyleOptions();\n"],"names":["frmStyleDependentUpdaterComponent","component","_classCallCheck","willChangeData","JSON","parse","dataset","willChange","data","propagateInputs","initPropagationList","changeEvent","Event","bubbles","error","console","_createClass","key","value","inputNames","list","forEach","name","input","document","querySelector","concat","push","updateAllDependentElements","dispatchEvent","default","__","frmStyleOptions","success","frmDom","init","initHover","initColorPickerDependentUpdaterComponents","initStyleClassCopyToClipboard","components","querySelectorAll","elements","element","id","getAttribute","dependentUpdaterClass","wp","hooks","addAction","_ref","event","container","target","closest","innerText","settingsWrapper","hoverElement","createElement","classList","add","appendChild","styleOptionsMenu","item","addEventListener","style","transform","offsetTop","remove","setTimeout","accordionitems","successMessage","_this","copyLabel","className","currentTarget","navigator","clipboard","writeText","then"],"sourceRoot":""} +>>>>>>> master diff --git a/resources/scss/admin/components/panel/_settings-components.scss b/resources/scss/admin/components/panel/_settings-components.scss index 29dc898557..7ebdcc903d 100644 --- a/resources/scss/admin/components/panel/_settings-components.scss +++ b/resources/scss/admin/components/panel/_settings-components.scss @@ -106,58 +106,61 @@ select.frm_cancelnew, input.frm_enternew { } /* Color picker CSS */ -.frm-right-panel .wp-picker-open + .wp-picker-input-wrap { - position: absolute; - margin-left: calc( ( 100% - 35px ) * -1 ); - margin-top: 1px; - width: calc( 100% - 36px ); -} - -.frm-right-panel .wp-picker-container input[type="text"].wp-color-picker { - border: none; - padding: 5px 8px; - font-family: inherit; - color: var(--grey-700); - font-size: var(--text-md); - width: 100%; - line-height: var(--leading); -} - -.frm-right-panel .wp-picker-input-wrap .wp-picker-clear { - display: none !important; -} - -.frm-right-panel .wp-picker-holder { - position: absolute; - z-index: 999; -} - -.frm-right-panel .wp-picker-input-wrap label { - margin-bottom: 0; -} - -.frm-right-panel .wp-picker-container .wp-color-result.button { - width: 100%; - overflow: hidden; - margin: 0 !important; - height: var(--h-md) !important; - padding: 0 0 0 var(--gap-lg) !important; - border-radius: var(--small-radius); - border-color: var(--grey-300); -} - -.frm-right-panel .wp-color-result-text { - line-height: var(--leading) !important; - font-size: var(--text-md); - background: #fff !important; - color: var(--grey-900); - padding: 5px 8px; - border-color: var(--grey-300); - text-align: left; -} - -.frm-right-panel .color-alpha { - width: var(--gap-lg) !important; +.frm_settings_form, +.frm-right-panel { + .wp-picker-open + .wp-picker-input-wrap { + position: absolute; + margin-left: calc( ( 100% - 35px ) * -1 ); + margin-top: 1px; + width: calc( 100% - 36px ); + } + + .wp-picker-container input[type="text"].wp-color-picker { + border: none; + padding: 5px 8px; + font-family: inherit; + color: var(--grey-700); + font-size: var(--text-md); + width: 100%; + line-height: var(--leading); + } + + .wp-picker-input-wrap .wp-picker-clear { + display: none !important; + } + + .wp-picker-holder { + position: absolute; + z-index: 999; + } + + .wp-picker-input-wrap label { + margin-bottom: 0; + } + + .wp-picker-container .wp-color-result.button { + width: 100%; + overflow: hidden; + margin: 0 !important; + height: var(--h-md) !important; + padding: 0 0 0 var(--gap-lg) !important; + border-radius: var(--small-radius); + border-color: var(--grey-300); + } + + .wp-color-result-text { + line-height: var(--leading) !important; + font-size: var(--text-md); + background: #fff !important; + color: var(--grey-900); + padding: 5px 8px; + border-color: var(--grey-300); + text-align: left; + } + + .color-alpha { + width: var(--gap-lg) !important; + } } .frm_grid_container .wp-picker-container { diff --git a/resources/scss/admin/components/settings/_color-picker.scss b/resources/scss/admin/components/settings/_color-picker.scss index 6e3b97dd2f..ee85f88e0e 100644 --- a/resources/scss/admin/components/settings/_color-picker.scss +++ b/resources/scss/admin/components/settings/_color-picker.scss @@ -2,20 +2,21 @@ * Color picker component styles */ +.frm_settings_form, .formidable_page_formidable-styles .frm-right-panel { - .frm-style-component .wp-picker-container button { - position: relative; - height: 36px !important; - background-image: none !important; - overflow: hidden; - } - .frm-style-editor-form.frm-pro .frm-style-component .wp-picker-container button { background-color: #fff !important; } .frm-style-component { + .wp-picker-container button { + position: relative; + height: 36px !important; + background-image: none !important; + overflow: hidden; + background-color: #fff !important; + } .wp-picker-container::after { content: ''; diff --git a/resources/scss/admin/components/settings/_email-styles.scss b/resources/scss/admin/components/settings/_email-styles.scss new file mode 100644 index 0000000000..f281e61eb3 --- /dev/null +++ b/resources/scss/admin/components/settings/_email-styles.scss @@ -0,0 +1,120 @@ +.frm-email-style { + float: left; + margin-right: var(--gap-md); + + &:last-of-type { + margin-right: 0; + } + + &__card { + position: relative; + } + + &__name { + margin-top: var(--gap-xs); + padding-top: var(--gap-2xs); + text-align: center; + + .frmsvg { + vertical-align: sub; + } + } + + &__click { + display: block; + border-radius: 12px; + border: 1px solid var(--grey-200); + box-shadow: 0px 0.47px 0.94px 0px #1018280F; + + &:focus, + .frm-email-style--selected & { + border-color: var(--primary-500); + outline: 1px solid var(--primary-500); + } + + img { + width: 160px; + display: block; + } + + .frm-email-style--disabled &:after { + content: ''; + display: block; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: var(--grey-100); + opacity: 0.5; + } + } + + &__buttons { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 100; + display: none; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 12px; + } + + &__button { + cursor: pointer; + display: block; + + &:disabled { + cursor: not-allowed; + display: none; + background: var(--primary-700) !important; + border-color: var(--primary-700) !important; + } + } + + &--selected &__button { + &:disabled { + display: block; + } + + &[data-action="choose"] { + display: none; + } + } + + &--disabled &__button[data-action="choose"] { + display: none; + } + + &:hover &__buttons, + .frm-email-style__click:focus + &__buttons, + &:focus-within &__buttons { + display: flex; + } +} + +#frm-send-test-email, +.frm-upload-image-btn, +.frm-remove-image-btn, +.frm-reset-colors-btn { + cursor: pointer; +} + +#frm-send-test-email-modal { + .postbox { + padding: var(--gap-sm) var(--gap-md); + + * { + box-sizing: border-box; + } + } + + .inside { + margin: 0; + padding: 0; + } +} diff --git a/resources/scss/admin/components/settings/_global-settings.scss b/resources/scss/admin/components/settings/_global-settings.scss index d8043dcbdc..50120f7e7c 100644 --- a/resources/scss/admin/components/settings/_global-settings.scss +++ b/resources/scss/admin/components/settings/_global-settings.scss @@ -122,3 +122,4 @@ label.frm-example-icon { } @import "global-payment-settings"; +@import "email-styles"; diff --git a/tests/phpunit/emails/test_FrmEmailStylesController.php b/tests/phpunit/emails/test_FrmEmailStylesController.php new file mode 100644 index 0000000000..4807b335fb --- /dev/null +++ b/tests/phpunit/emails/test_FrmEmailStylesController.php @@ -0,0 +1,36 @@ +

Test link

Second div
'; + + $css = 'font-size:14px;'; + $new_content = '
Second div
'; + $this->assertEquals( + $this->run_private_method( + array( 'FrmEmailStylesController', 'add_inline_css' ), + array( 'div', $css, $content ) + ), + $new_content + ); + + $new_content = '
Second div
'; + $this->assertEquals( + $this->run_private_method( + array( 'FrmEmailStylesController', 'add_inline_css' ), + array( 'p', $css, $content ) + ), + $new_content + ); + + $new_content = '
Second div
'; + $this->assertEquals( + $this->run_private_method( + array( 'FrmEmailStylesController', 'add_inline_css' ), + array( 'a', $css, $content ) + ), + $new_content + ); + } +} diff --git a/tests/phpunit/entries/test_FrmShowEntryShortcode.php b/tests/phpunit/entries/test_FrmShowEntryShortcode.php index 077c22623a..afc2ff7732 100644 --- a/tests/phpunit/entries/test_FrmShowEntryShortcode.php +++ b/tests/phpunit/entries/test_FrmShowEntryShortcode.php @@ -793,7 +793,7 @@ protected function table_header( $atts ) { $border_width = isset( $atts['border_width'] ) ? $atts['border_width'] : $atts['field_border_width']; $border_color = $atts['border_color']; - $header .= ' style="font-size:' . $font_size . ';line-height:135%;'; + $header .= ' style="border-spacing:0;font-size:' . $font_size . ';line-height:135%;'; $header .= 'border-bottom:' . $border_width . ' solid ' . $border_color . ';"'; } diff --git a/tests/phpunit/entries/test_FrmTableHTMLGenerator.php b/tests/phpunit/entries/test_FrmTableHTMLGenerator.php index c90c1130ef..78544f88dc 100644 --- a/tests/phpunit/entries/test_FrmTableHTMLGenerator.php +++ b/tests/phpunit/entries/test_FrmTableHTMLGenerator.php @@ -43,6 +43,23 @@ public function test_is_color_setting() { } } + public function test_remove_border() { + $table_generator = new FrmTableHTMLGenerator( + 'entry', + array( + 'border_color' => 'eee', + 'border_width' => '3px', + ) + ); + + $html = '
'; + $this->assertEquals( $table_generator->remove_border( $html ), '
' ); + $this->assertEquals( $table_generator->remove_border( $html, 'bottom' ), $html ); + + $html = '
'; + $this->assertEquals( $table_generator->remove_border( $html ), $html ); + } + private function _get_colors() { $atts = array( 'border_color' => 'ffffff',