diff --git a/_typos.toml b/_typos.toml
index 001187a2d7..4fbfa0a941 100644
--- a/_typos.toml
+++ b/_typos.toml
@@ -39,6 +39,12 @@ Ags = "Ags"
unmergable = "unmergable"
# This is detected in our Stripe publishable key.
iz = "iz"
+# `BA` is the ISO country code for Bosnia and Herzegovina in PayPal country lists.
+BA = "BA"
+# `PN` is the ISO country code for Pitcairn Islands in PayPal country lists.
+PN = "PN"
+# `Ot` is a substring in a PayPal sandbox token.
+Ot = "Ot"
# This is used in a Sniff to reference a PHP function that does exist.
writeable = "writeable"
diff --git a/bin/zip-plugin.sh b/bin/zip-plugin.sh
index 48e47e63f5..f18e14e320 100755
--- a/bin/zip-plugin.sh
+++ b/bin/zip-plugin.sh
@@ -129,8 +129,7 @@ zip -r $zipname $destination \
-x "*/eslint-rules/*" \
-x "*/phpcs-sniffs/*" \
-x "$source/venv/*" \
- -x "formidable/resources/*" \
- -x "formidable/paypal/*"
+ -x "formidable/resources/*"
if [ ! -z "$3" ]; then
rm -rf $destination
diff --git a/classes/controllers/FrmFormActionsController.php b/classes/controllers/FrmFormActionsController.php
index fb4e692ba3..62c8f2f3cc 100644
--- a/classes/controllers/FrmFormActionsController.php
+++ b/classes/controllers/FrmFormActionsController.php
@@ -11,7 +11,7 @@ class FrmFormActionsController {
public static $action_post_type = 'frm_form_actions';
/**
- * @var array|null
+ * @var Frm_Form_Action_Factory|null
*/
public static $registered_actions;
@@ -57,10 +57,13 @@ public static function register_actions() {
'email' => 'FrmEmailAction',
'wppost' => 'FrmDefPostAction',
'register' => 'FrmDefRegAction',
+ 'stripe' => 'FrmStripeLiteAction',
+ 'square' => 'FrmSquareAction',
+ 'paypal' => 'FrmPayPalLiteAction',
+ 'paypal-legacy' => 'FrmDefPayPalLegacyAction',
+ 'payment' => 'FrmTransLiteAction',
'quiz' => 'FrmDefQuizAction',
'quiz_outcome' => 'FrmDefQuizOutcomeAction',
- 'paypal' => 'FrmDefPayPalAction',
- 'payment' => 'FrmTransLiteAction',
'api' => 'FrmDefApiAction',
'mailchimp' => 'FrmDefMlcmpAction',
'activecampaign' => 'FrmDefActiveCampaignAction',
@@ -84,6 +87,11 @@ public static function register_actions() {
include_once FrmAppHelper::plugin_path() . '/classes/views/frm-form-actions/email_action.php';
include_once FrmAppHelper::plugin_path() . '/classes/views/frm-form-actions/default_actions.php';
+ // This needs to be called after we include default_actions.php or FrmDefPayPalLegacyAction will never exist.
+ if ( 'FrmPayPalLiteAction' === $action_classes['paypal'] || ! class_exists( 'FrmPaymentAction' ) || ! class_exists( 'FrmDefPayPalLegacyAction' ) ) {
+ unset( $action_classes['paypal-legacy'] );
+ }
+
foreach ( $action_classes as $action_class ) {
self::$registered_actions->register( $action_class );
}
@@ -107,6 +115,8 @@ private static function apply_default_action_descriptions() {
'wppost' => __( 'Content publishing', 'formidable' ),
'register' => __( 'Account creation', 'formidable' ),
'payment' => __( 'Transaction alerts', 'formidable' ),
+ 'stripe' => __( 'Payment gateway', 'formidable' ),
+ 'square' => __( 'Payment gateway', 'formidable' ),
'paypal' => __( 'Payment gateway', 'formidable' ),
'quiz' => __( 'Automated grading', 'formidable' ),
'quiz_outcome' => __( 'Result logic', 'formidable' ),
@@ -210,6 +220,18 @@ private static function maybe_add_action_to_group( $action_controls, &$groups )
* @return array
*/
public static function form_action_groups() {
+ $payment_actions = array(
+ 'paypal',
+ 'paypal-legacy',
+ 'stripe',
+ 'square',
+ 'payment',
+ );
+
+ if ( ! class_exists( 'FrmPaymentsController' ) ) {
+ $payment_actions = array_diff( $payment_actions, array( 'paypal-legacy' ) );
+ }
+
$groups = array(
'misc' => array(
'name' => '',
@@ -229,10 +251,7 @@ public static function form_action_groups() {
'payment' => array(
'name' => __( 'E-Commerce', 'formidable' ),
'icon' => 'frmfont frm_credit_card_alt_icon',
- 'actions' => array(
- 'paypal',
- 'payment',
- ),
+ 'actions' => $payment_actions,
),
'marketing' => array(
'name' => __( 'Marketing', 'formidable' ),
@@ -524,6 +543,7 @@ public static function add_form_action() {
FrmAppHelper::permission_check( 'frm_edit_forms' );
check_ajax_referer( 'frm_ajax', 'nonce' );
+ $action_key = FrmAppHelper::get_param( 'list_id', '', 'post', 'absint' );
$action_type = FrmAppHelper::get_param( 'type', '', 'post', 'sanitize_text_field' );
$lite_actions = array_fill_keys( self::get_lite_actions(), true );
@@ -533,8 +553,6 @@ public static function add_form_action() {
global $frm_vars;
- $action_key = FrmAppHelper::get_param( 'list_id', '', 'post', 'absint' );
-
/**
* @var FrmFormAction
*/
diff --git a/classes/controllers/FrmHooksController.php b/classes/controllers/FrmHooksController.php
index d5383d9eb9..d6a0183076 100644
--- a/classes/controllers/FrmHooksController.php
+++ b/classes/controllers/FrmHooksController.php
@@ -115,6 +115,7 @@ public static function load_hooks() {
FrmTransLiteHooksController::load_hooks();
FrmStrpLiteHooksController::load_hooks();
FrmSquareLiteHooksController::load_hooks();
+ FrmPayPalLiteHooksController::load_hooks();
// GDPR
add_filter( 'frm_is_field_required', 'FrmFieldGdpr::force_required_field', 10, 2 );
@@ -219,6 +220,7 @@ public static function load_admin_hooks() {
FrmTransLiteHooksController::load_admin_hooks();
FrmStrpLiteHooksController::load_admin_hooks();
FrmSquareLiteHooksController::load_admin_hooks();
+ FrmPayPalLiteHooksController::load_admin_hooks();
FrmSMTPController::load_hooks();
FrmOnboardingWizardController::load_admin_hooks();
FrmAddonsController::load_admin_hooks();
diff --git a/classes/helpers/FrmAppHelper.php b/classes/helpers/FrmAppHelper.php
index 2fd40f9648..18b0b34eb6 100644
--- a/classes/helpers/FrmAppHelper.php
+++ b/classes/helpers/FrmAppHelper.php
@@ -4010,7 +4010,8 @@ private static function add_form_builder_modal_data( &$admin_script_strings ) {
$stripe_connected = FrmStrpLiteConnectHelper::at_least_one_mode_is_setup();
$square_connected = FrmSquareLiteConnectHelper::at_least_one_mode_is_setup();
- $gateway_connected = $stripe_connected || $square_connected;
+ $paypal_connected = FrmPayPalLiteConnectHelper::at_least_one_mode_is_setup();
+ $gateway_connected = $stripe_connected || $square_connected || $paypal_connected;
$payments_settings_url = FrmStrpLiteAppController::get_payments_settings_url();
if ( ! $gateway_connected ) {
diff --git a/classes/helpers/FrmTipsHelper.php b/classes/helpers/FrmTipsHelper.php
index 75defaa623..28a0bf6854 100644
--- a/classes/helpers/FrmTipsHelper.php
+++ b/classes/helpers/FrmTipsHelper.php
@@ -238,22 +238,6 @@ public static function get_form_action_tip() {
'tip' => __( 'Send leads to Mailchimp for instant email follow-up.', 'formidable' ),
'call' => self::cta_label(),
),
- array(
- 'link' => array(
- 'content' => 'paypal-revenue',
- 'page' => 'paypal-increase-revenue-tip',
- ),
- 'tip' => __( 'Accept PayPal payments and grow your sales.', 'formidable' ),
- 'call' => self::cta_label(),
- ),
- array(
- 'link' => array(
- 'content' => 'paypal-fast',
- 'page' => 'paypal-save-time-tip',
- ),
- 'tip' => __( 'Accept payments now with PayPal integration.', 'formidable' ),
- 'call' => self::cta_label(),
- ),
array(
'link' => array(
'content' => 'registration',
diff --git a/classes/models/FrmFormAction.php b/classes/models/FrmFormAction.php
index 9784076e26..8e4f2d1aba 100644
--- a/classes/models/FrmFormAction.php
+++ b/classes/models/FrmFormAction.php
@@ -141,7 +141,15 @@ public function __construct( $id_base, $name, $action_options = array(), $contro
die( 'You are not allowed to call this page directly.' );
}
- $this->id_base = strtolower( $id_base );
+ $this->id_base = strtolower( $id_base );
+
+ /**
+ * @since x.x
+ *
+ * @param string $name
+ */
+ $name = apply_filters( 'frm_' . $id_base . '_action_name', $name );
+
$this->name = $name;
$this->option_name = 'frm_' . $this->id_base . '_action';
diff --git a/classes/models/fields/FrmFieldType.php b/classes/models/fields/FrmFieldType.php
index 40f220712c..6f0d7eb0db 100644
--- a/classes/models/fields/FrmFieldType.php
+++ b/classes/models/fields/FrmFieldType.php
@@ -971,7 +971,14 @@ public function get_options( $values ) {
* @return void
*/
public function show_field( $args ) {
- if ( apply_filters( 'frm_show_normal_field_type', $this->normal_field, $this->type ) ) {
+ /**
+ * @since x.x Added $field parameter.
+ *
+ * @param bool $show_normal_field_type
+ * @param string $type
+ * @param array $field
+ */
+ if ( apply_filters( 'frm_show_normal_field_type', $this->normal_field, $this->type, $this->field ) ) {
echo $this->prepare_field_html( $args ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
} else {
do_action( 'frm_show_other_field_type', $this->field, $args['form'], array( 'action' => $args['form_action'] ) );
diff --git a/classes/views/frm-fields/back-end/settings.php b/classes/views/frm-fields/back-end/settings.php
index a1f5d35061..b384a98a9d 100644
--- a/classes/views/frm-fields/back-end/settings.php
+++ b/classes/views/frm-fields/back-end/settings.php
@@ -57,7 +57,7 @@
}
if ( $field['type'] === 'credit_card' && ! FrmAppHelper::pro_is_installed() ) {
- if ( ! FrmStrpLiteConnectHelper::at_least_one_mode_is_setup() && ! FrmSquareLiteConnectHelper::at_least_one_mode_is_setup() ) {
+ if ( ! FrmStrpLiteConnectHelper::at_least_one_mode_is_setup() && ! FrmSquareLiteConnectHelper::at_least_one_mode_is_setup() && ! FrmPayPalLiteConnectHelper::at_least_one_mode_is_setup() ) {
FrmStrpLiteAppHelper::not_connected_warning();
} elseif ( ! FrmTransLiteActionsController::get_actions_for_form( $field['form_id'] ) ) {
?>
@@ -66,7 +66,7 @@
', '' );
+ printf( esc_html__( 'Credit Cards will not work without %1$sadding a Stripe, Square, or PayPal action%2$s.', 'formidable' ), '', ' ' );
?>
diff --git a/classes/views/frm-form-actions/_action_icon.php b/classes/views/frm-form-actions/_action_icon.php
index 102c93117a..983e843369 100644
--- a/classes/views/frm-form-actions/_action_icon.php
+++ b/classes/views/frm-form-actions/_action_icon.php
@@ -3,12 +3,19 @@
die( 'You are not allowed to call this page directly.' );
}
+$limit = $action_control->action_options['limit'];
+
+if ( 'paypal' === $action_control->id_base ) {
+ // The PayPal add-on may overwrite this so change it back.
+ $limit = 1;
+}
+
$single_action_attrs = array_merge(
$data,
array(
'href' => 'javascript:void(0)',
'class' => $classes . ' button frm-button-secondary frm-button-sm frm-with-icon frm-ml-auto-force frm-fadein-down-short',
- 'data-limit' => $action_control->action_options['limit'],
+ 'data-limit' => $limit,
'data-actiontype' => $action_control->id_base,
)
);
diff --git a/classes/views/frm-form-actions/default_actions.php b/classes/views/frm-form-actions/default_actions.php
index cdaafad4db..02d83c74f4 100644
--- a/classes/views/frm-form-actions/default_actions.php
+++ b/classes/views/frm-form-actions/default_actions.php
@@ -30,15 +30,53 @@ public function __construct() {
/**
* Add paypal action.
*/
-class FrmDefPayPalAction extends FrmFormAction {
+class FrmPayPalLiteAction extends FrmFormAction {
public function __construct() {
- $action_ops = FrmFormAction::default_action_opts( 'frm_paypal_icon frm_show_upgrade' );
- $action_ops['color'] = '#001c64';
+ $action_ops = array(
+ 'classes' => 'frmfont frm_paypal_icon',
+ 'color' => 'var(--primary-700)',
+ );
parent::__construct( 'paypal', 'PayPal', $action_ops );
}
}
+/**
+ * Add paypal legacy action.
+ */
+if ( class_exists( 'FrmPaymentAction' ) ) {
+ class FrmDefPayPalLegacyAction extends FrmPaymentAction {
+ public function __construct() {
+ parent::__construct();
+
+ $this->id_base = 'paypal-legacy';
+ $this->name = 'PayPal (Legacy)';
+ }
+ }
+}
+
+class FrmStripeLiteAction extends FrmFormAction {
+ public function __construct() {
+ $action_ops = array(
+ 'classes' => 'frmfont frm_stripe_icon',
+ 'color' => '#635bff',
+ );
+
+ parent::__construct( 'stripe', 'Stripe', $action_ops );
+ }
+}
+
+class FrmSquareAction extends FrmFormAction {
+ public function __construct() {
+ $action_ops = array(
+ 'classes' => 'frmfont frm_square_icon',
+ 'color' => '#000',
+ );
+
+ parent::__construct( 'square', 'Square', $action_ops );
+ }
+}
+
/**
* Add quiz action.
*/
diff --git a/css/frm_admin.css b/css/frm_admin.css
index 3dfabffc94..3782c5fc4a 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_tooltip_icon::before{content:"\e611"}.frm_delete_icon::before{content:"\e610" !important}.frm_arrowdown6_icon::before{content:"\e62a"}: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, 0.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;--x-small-radius: 4px;--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,.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}#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)}.post-type-frm_display .frm_top_left{padding-bottom:0 !important}.frm-views-editor-body #frm_adv_info .frm-view-customization-tabs .subsubsub{padding-right:0 !important;padding-left:0 !important}.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:rgba(255,255,255,.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}.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-payments-tabs{margin-bottom:var(--gap-md);display:flex}.frm-payments-tabs .frm-payments-tab{font-weight:600;font-size:14px;color:var(--grey-900);display:inline-block;border-width:1px;border-style:solid;border-color:#eaecf0;padding:8px 12px;border-radius:6px 6px 0 0;background-color:#f9fafb}.frm-payments-tabs .frm-payments-tab-filler{border-bottom:1px solid #eaecf0;min-width:var(--gap-xs)}.frm-payments-tabs .frm-payments-tab-filler:last-child{flex:1}.frm-payments-tab.frm-active{background-color:#fff;border-bottom:none}.frm-payments-tab a{text-decoration:none;color:var(--grey-900)}#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_single_paypal_settings .frm_add_pp_logic.button,.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,.frm_single_paypal_settings .frm_add_pp_logic.button{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,.frm_single_paypal_settings .frm_add_pp_logic.button:hover,.frm_single_paypal_settings .frm_add_pp_logic.button:focus,.frm_single_paypal_settings .frm_add_pp_logic.button:active{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-primary: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)}.frm-btn-unstyled{font:inherit;background:none;border:none;padding:0;cursor:pointer;outline:inherit}.frm-btn-unstyled:hover,.frm-btn-unstyled:focus,.frm-btn-unstyled:active{text-decoration:none;background:none;border:none;box-shadow:none}.frm-btn-unstyled:disabled,.frm-btn-unstyled[disabled]{pointer-events:none;opacity:.65}.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-white{color:#fff !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) !important}.frm-text-grey-600{color:var(--grey-600) !important}.frm-text-grey-700{color:var(--grey-700)}.frm-text-grey-800{color:var(--grey-800) !important}.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-text-primary-700{color:var(--primary-700)}.frm-underline{text-decoration:underline}.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-6{margin-top:6px !important}.-frm-mt-2xs{margin-top:calc(-1*var(--gap-2xs)) !important}.-frm-mt-md{margin-top:calc(-1*var(--gap-md)) !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-xl{margin-top:var(--gap-xl) !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-0{margin-left:0 !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-auto-force{margin-left:auto !important}.-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-my-md{margin-top:var(--gap-md) !important;margin-bottom:var(--gap-md) !important}.frm-p-0{padding:0 !important}.frm-p-1,.frm-p-2xs{padding:var(--gap-2xs)}.frm-p-2xs-force{padding:var(--gap-2xs) !important}.frm-p-sm,.frm-p-4{padding:var(--gap-sm) !important}.frm-p-xs{padding:var(--gap-xs) !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-py-md{padding-top:var(--gap-md) !important;padding-bottom:var(--gap-md) !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-pl-xs{padding-left:var(--gap-xs) !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-children-px-sm>*{padding-right:var(--gap-sm) !important;padding-left:var(--gap-sm) !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 !important}.frm-font-normal{font-weight:400 !important}.frm-font-medium{font-weight:500 !important}.frm-font-semibold{font-weight:600 !important}.frm-font-bold{font-weight:700 !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-6{border-radius:6px !important}.frm-rounded-sm{border-radius:var(--small-radius) !important}.frm-rounded-12{border-radius:12px !important}.frm-rounded-md{border-radius:var(--medium-radius) !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-min-w-0{min-width:0}.frm-h-auto{height:auto !important}#wpwrap .frm-force-hidden,.frm-force-hidden{display:none !important}.frm_block,.frm-block{display:block}.frm-block-force{display:block !important}.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-start{align-items:flex-start}.frm-items-center{align-items:center}.frm-items-stretch{align-items:stretch}.frm-self-normal{align-self:normal}.frm-self-baseline{align-self:baseline}.frm-self-end{align-self:flex-end}#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-flex-row-reverse{flex-direction:row-reverse}.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-text-left{text-align:left}.frm-border-b{border-bottom:1px solid var(--grey-300)}.frm-no-border{border:none !important}.frm-bt-200{border-top:1px solid var(--grey-200)}.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 !important}.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-show-fields ul:has(>li:nth-child(7)) .frm-sub-label.frm-field-id{display:none}.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}.dropdown-item .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;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,#frm_field_group_controls .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-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 .frm-new-pill{margin-left:0;vertical-align:bottom}.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_wrap input[type=text].frm_invalid_field,.frm_wrap input[type=text].frm_invalid_field:focus{border-color:#b94a48 !important}.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}.frmright{text-align:right}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}.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,.frm-bg-white{background-color:#fff}.frm-bg-grey-50{background-color:var(--grey-50)}.frm-bg-grey-200{background-color:var(--grey-200)}.frm-bg-grey-800{background-color:var(--grey-800)}.frm-bg-primary-500{background-color:var(--primary-500)}.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-options-panel .frm_show_upgrade{opacity:.5}.frm-right-panel a.frm_add_logic_link,#frm-options-panel h3,.frm-collapsible{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,.frm-collapsible .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,.frm-collapsible:not(.frm-collapsed):not(:first-of-type),.frm-collapsible: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,.frm-collapsible:not(.frm-collapsed):not(:first-of-type) .frmsvg,.frm-collapsible: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,.frm-collapsible: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,.frm-collapsible: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,.frm-collapsible: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,.frm-collapsible: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,.frm-collapsible.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,.frm-collapsible: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,.frm-collapsible:focus-visible{outline:1px solid var(--primary-500) !important;outline-offset:-1px}h4.frm-collapsible:hover{box-shadow:none}.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.frm_image_preview_wrapper,.frm-type-ranking .frm_single_option .frm_option_key{margin-left:21px !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}.frm-type-ranking .frm_option_key input[id*=field_key_]{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-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{font-size:var(--text-md);color:var(--grey-700);padding:var(--gap-sm);display:block}.frm-form-setting-tabs{margin-top:19px !important}.frm-form-setting-tabs a{font-size:var(--text-md);color:var(--grey-900);border-radius:var(--small-radius);padding:13px var(--gap-sm);margin-left:var(--gap-xs);margin-right:var(--gap-xs);transition:background-color .2s ease-out}.frm-form-setting-tabs a:hover{color:var(--grey-900);background:var(--grey-100)}.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-right-panel .inside i{margin:0 5px;display:inline-block;width:20px;height:20px;color:var(--grey-500)}.frm-right-panel .inside a:hover i,.frm-right-panel .inside a:hover .frmsvg{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)}.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;cursor:pointer}.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:not(#frm_testing_mode .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:0 .47px .94px 0 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}#form_settings_page .frm-inner-content{position:relative;padding-right:var(--gap-xl);padding-bottom:150px;padding-left:var(--gap-xl)}#form_settings_page .frm-inner-content>.frm_updated_message:first-child{margin-top:0}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{font-size:var(--text-md);border-top:1px solid var(--grey-200);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_form_settings .frm-form-setting-tabs a .frmsvg{width:24px;height:24px}.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_settings h2,.frm_email_settings h3{border:0;padding:0;font-weight:500 !important}.frm_email_settings h3{font-size:var(--text-sm);color:var(--grey-600);margin:var(--gap-md) 0}.frm_email_settings .frm-border-icon .frmsvg{color:var(--primary-700)}#frm_email_addon_menu .frm-search{float:unset;clear:unset;width:100%;max-width:380px}#frm_email_addon_menu .frm-search input[type=search]{height:44px}#frm-actions-filter-content:not([data-active-filter=all]) .frm-group-heading{display:none}.frm_actions_list .frm-card-item.frm-card-item--outlined{padding-left:var(--gap-sm);padding-right:var(--gap-sm);margin:0;transition:box-shadow 200ms ease-in-out,background-color 200ms ease-out}.frm_actions_list .frm-card-item.frm-card-item--outlined:hover{background-color:var(--grey-25)}.frm_actions_list .frm-card-item.frm-card-item--outlined h3{color:var(--grey-800)}.frm_actions_list .frm-card-item.frm-card-item--outlined h3 .frm-new-pill{margin-left:0}.frm_actions_list .frm-card-item.frm-card-item--outlined:has(.frm_n8n_action) h3{text-transform:lowercase !important}.frm_actions_list .frm-card-item.frm-card-item--outlined .frm_single_action{display:none;align-items:center;gap:var(--gap-2xs);font-size:var(--text-sm) !important;padding:7px var(--gap-sm) !important}.frm_actions_list .frm-card-item.frm-card-item--outlined .frm_single_action.frm_already_used{opacity:.5 !important}.frm_actions_list .frm-card-item.frm-card-item--outlined .frm_single_action .frmsvg{width:20px;height:20px;opacity:1}.frm_actions_list .frm-card-item.frm-card-item--outlined:hover .frm_single_action,.frm_actions_list .frm-card-item.frm-card-item--outlined:focus-within .frm_single_action{display:flex}.frm_posttax_opt_list{border:1px solid var(--grey-300);padding:var(--gap-md) var(--gap-sm);border-radius:var(--small-radius);margin-top:var(--gap-md)}.frm_form_action_settings{margin-bottom:12px}.frm_form_action_settings h2,.frm_form_action_settings h3{border-top:1px solid var(--grey-200);padding-top:var(--gap-md);margin:var(--gap-sm) 0}.frm_form_action_settings .widget-top{color:var(--grey-700);background:#fff;border-radius:var(--small-radius);border-color:var(--grey-300);box-shadow:none;transition:background-color 200ms ease-out}.frm_form_action_settings .widget-top:focus-visible{outline:1px solid var(--primary-500);outline-offset:-1px}.frm_form_action_settings .widget-title{min-width:0}.frm_form_action_settings .widget-title h4 span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frm_form_action_settings .frm_email_icons{display:none}.frm_form_action_settings .frm_email_icons a:focus-visible,.frm_form_action_settings .frm_email_icons .frm_toggle:focus-visible{outline:1px solid var(--primary-500);outline-offset:2px;border-radius:var(--small-radius)}.frm_form_action_settings .widget-action{color:var(--grey-800);transition:transform 200ms ease-out}.frm_form_action_settings .widget-action:focus-visible{outline:1px solid var(--primary-500);outline-offset:2px;border-radius:var(--small-radius)}.frm_form_action_settings:hover .widget-top,.frm_form_action_settings:focus-within .widget-top{background:var(--grey-25)}.frm_form_action_settings:hover .frm_email_icons,.frm_form_action_settings:focus-within .frm_email_icons{display:flex}.frm_form_action_settings.open .widget-top{background:var(--grey-25);border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}.frm_form_action_settings.open .widget-action{transform:rotate(-180deg)}.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:var(--gap-xs) var(--gap-sm);border-color:var(--grey-300);border-bottom-left-radius:var(--small-radius);border-bottom-right-radius:var(--small-radius)}.frm_form_action_settings .widget-inside .frm_add_remove[style*="display: block"]+p{margin-top:0;margin-bottom:var(--gap-xs)}.frm_form_action_settings .widget-inside .frm_add_remove>.frm_grid_container[id^=frm_post]:not(:first-of-type){margin-top:var(--gap-sm)}.frm_form_action_settings .widget-inside p{margin-bottom:var(--gap-sm)}.frm_form_action_settings .widget-inside p>label{display:flex;align-items:center;gap:var(--gap-xs)}.frm_form_action_settings .widget-inside p>label .frmsvg{display:flex}.frm_form_action_settings .widget-inside td p{margin-bottom:var(--gap-md)}.frm_form_action_settings .widget-inside>.frm_warning_style,.frm_form_action_settings .widget-inside>.frm_note_style{margin-top:var(--gap-xs)}.frm_form_action_settings .widget-inside .frm_image_data{justify-content:flex-start;gap:var(--gap-2xs)}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{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{position:relative;float:right;margin:-4px 0 0;z-index:1}.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}.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}.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)}.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_form_settings .frmsvg.frm-show-box,.frm_form_settings .frmsvg.frm-show-inline-modal,.frm_form_settings i.frm-show-box,.frm_form_settings i.frm-show-inline-modal{margin:4px 4px 0}.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_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.frm_show_update{cursor:pointer}#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.frm_show_update,#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,#frm-insert-fields li.frm_show_update.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}.frmsvg.frm_svg7{width:7px;height:7px}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.frm_at_limit{opacity:.5}.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}.ui-draggable-dragging .frm-meta-tag.frm-new-pill{display:none}li.frm_noallow.button,.frm_noallow{opacity:.5}li.frm_noallow.button.frm_show_upgrade,li.frm_noallow.button.frm_show_update{cursor:pointer}.field_type_list li.frm_noallow.button.frm_show_upgrade:hover,.field_type_list li.frm_noallow.button.frm_show_update:hover{border-color:inherit}.frm_noallow a{color:inherit}#frm_upgrade_modal_image{max-width:200px}#frm_upgrade_modal .cta-inside{display:flex;flex-direction:column;gap:var(--gap-sm)}#frm_upgrade_modal .frm-upgrade-message[style*="display: none"]~.frm-addon-status,#frm_upgrade_modal .frm-upgrade-message[style*="display: none"]~a.button{margin-top:var(--gap-sm)}#frm_upgrade_modal .frm-upgrade-message img{width:100%;margin:var(--gap-sm) 0 10px}#frm_upgrade_modal .frm-oneclick.frm_hidden{display:none !important}#frm_upgrade_modal .frm-oneclick-button{margin-left:auto}#frm_upgrade_modal .frm-upgrade-modal-actions{flex-direction:row-reverse;justify-content:flex-start;margin:0 !important}#frm_upgrade_modal .frm-upgrade-link{align-self:end}#frm_upgrade_modal.frm-success .frm-circled-icon svg{width:24px;height:24px}#frm_upgrade_modal.frm-success .frm-upgrade-modal-title-prefix,#frm_upgrade_modal.frm-success .frm_are_not_installed{display:none !important}#frm_upgrade_modal.frm-success .frm-upgrade-modal-title-suffix{display:inline !important}#frm_upgrade_modal.frm-success .frm-addon-status{margin:0}#frm_upgrade_modal.frm-success .frm-addon-status .frm-save-and-reload-options{display:flex;gap:var(--gap-xs);flex-direction:row-reverse;margin:0}#frm_upgrade_modal.frm-success .frm-addon-status .frm-save-and-reload-options .frm-save-and-reload{margin:0}.frm-dialog[aria-describedby=frm_upgrade_modal]{position:fixed !important;top:50% !important;left:50% !important;transform:translate(-50%, -50%) !important}.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 .frmsvg.frm_svg32{width:32px !important;height:32px !important}.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-border-icon--small{width:24px;height:24px;border-radius:var(--x-small-radius)}.frm-border-icon--small .frmsvg{width:14px;height:14px}.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_tooltip_icon::before{content:"\e611"}.frm_delete_icon::before{content:"\e610" !important}.frm_arrowdown6_icon::before{content:"\e62a"}: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, 0.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;--x-small-radius: 4px;--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,.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}#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)}.post-type-frm_display .frm_top_left{padding-bottom:0 !important}.frm-views-editor-body #frm_adv_info .frm-view-customization-tabs .subsubsub{padding-right:0 !important;padding-left:0 !important}.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:rgba(255,255,255,.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}.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-payments-tabs{margin-bottom:var(--gap-md);display:flex}.frm-payments-tabs .frm-payments-tab{font-weight:600;font-size:14px;color:var(--grey-900);display:inline-block;border-width:1px;border-style:solid;border-color:#eaecf0;padding:8px 12px;border-radius:6px 6px 0 0;background-color:#f9fafb}.frm-payments-tabs .frm-payments-tab-filler{border-bottom:1px solid #eaecf0;min-width:var(--gap-xs)}.frm-payments-tabs .frm-payments-tab-filler:last-child{flex:1}.frm-payments-tab.frm-active{background-color:#fff;border-bottom:none}.frm-payments-tab a{text-decoration:none;color:var(--grey-900)}#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_single_paypal_settings .frm_add_pp_logic.button,.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,.frm_single_paypal_settings .frm_add_pp_logic.button{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,.frm_single_paypal_settings .frm_add_pp_logic.button:hover,.frm_single_paypal_settings .frm_add_pp_logic.button:focus,.frm_single_paypal_settings .frm_add_pp_logic.button:active{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-primary: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)}.frm-btn-unstyled{font:inherit;background:none;border:none;padding:0;cursor:pointer;outline:inherit}.frm-btn-unstyled:hover,.frm-btn-unstyled:focus,.frm-btn-unstyled:active{text-decoration:none;background:none;border:none;box-shadow:none}.frm-btn-unstyled:disabled,.frm-btn-unstyled[disabled]{pointer-events:none;opacity:.65}.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-white{color:#fff !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) !important}.frm-text-grey-600{color:var(--grey-600) !important}.frm-text-grey-700{color:var(--grey-700)}.frm-text-grey-800{color:var(--grey-800) !important}.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-text-primary-700{color:var(--primary-700)}.frm-underline{text-decoration:underline}.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-6{margin-top:6px !important}.-frm-mt-2xs{margin-top:calc(-1*var(--gap-2xs)) !important}.-frm-mt-md{margin-top:calc(-1*var(--gap-md)) !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-xl{margin-top:var(--gap-xl) !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-0{margin-left:0 !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-auto-force{margin-left:auto !important}.-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-my-md{margin-top:var(--gap-md) !important;margin-bottom:var(--gap-md) !important}.frm-p-0{padding:0 !important}.frm-p-1,.frm-p-2xs{padding:var(--gap-2xs)}.frm-p-2xs-force{padding:var(--gap-2xs) !important}.frm-p-sm,.frm-p-4{padding:var(--gap-sm) !important}.frm-p-xs{padding:var(--gap-xs) !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-py-md{padding-top:var(--gap-md) !important;padding-bottom:var(--gap-md) !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-pl-xs{padding-left:var(--gap-xs) !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-children-px-sm>*{padding-right:var(--gap-sm) !important;padding-left:var(--gap-sm) !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 !important}.frm-font-normal{font-weight:400 !important}.frm-font-medium{font-weight:500 !important}.frm-font-semibold{font-weight:600 !important}.frm-font-bold{font-weight:700 !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-6{border-radius:6px !important}.frm-rounded-sm{border-radius:var(--small-radius) !important}.frm-rounded-12{border-radius:12px !important}.frm-rounded-md{border-radius:var(--medium-radius) !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-min-w-0{min-width:0}.frm-h-auto{height:auto !important}#wpwrap .frm-force-hidden,.frm-force-hidden{display:none !important}.frm_block,.frm-block{display:block}.frm-block-force{display:block !important}.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-start{align-items:flex-start}.frm-items-center{align-items:center}.frm-items-stretch{align-items:stretch}.frm-self-normal{align-self:normal}.frm-self-baseline{align-self:baseline}.frm-self-end{align-self:flex-end}#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-flex-row-reverse{flex-direction:row-reverse}.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-text-left{text-align:left}.frm-border-b{border-bottom:1px solid var(--grey-300)}.frm-no-border{border:none !important}.frm-bt-200{border-top:1px solid var(--grey-200)}.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 !important}.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-show-fields ul:has(>li:nth-child(7)) .frm-sub-label.frm-field-id{display:none}.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}.dropdown-item .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;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,#frm_field_group_controls .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-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 .frm-new-pill{margin-left:0;vertical-align:bottom}.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_wrap input[type=text].frm_invalid_field,.frm_wrap input[type=text].frm_invalid_field:focus{border-color:#b94a48 !important}.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}.frmright{text-align:right}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}.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,.frm-bg-white{background-color:#fff}.frm-bg-grey-50{background-color:var(--grey-50)}.frm-bg-grey-200{background-color:var(--grey-200)}.frm-bg-grey-800{background-color:var(--grey-800)}.frm-bg-primary-500{background-color:var(--primary-500)}.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-options-panel .frm_show_upgrade{opacity:.5}.frm-right-panel a.frm_add_logic_link,#frm-options-panel h3,.frm-collapsible{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,.frm-collapsible .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,.frm-collapsible:not(.frm-collapsed):not(:first-of-type),.frm-collapsible: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,.frm-collapsible:not(.frm-collapsed):not(:first-of-type) .frmsvg,.frm-collapsible: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,.frm-collapsible: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,.frm-collapsible: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,.frm-collapsible: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,.frm-collapsible: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,.frm-collapsible.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,.frm-collapsible: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,.frm-collapsible:focus-visible{outline:1px solid var(--primary-500) !important;outline-offset:-1px}h4.frm-collapsible:hover{box-shadow:none}.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.frm_image_preview_wrapper,.frm-type-ranking .frm_single_option .frm_option_key{margin-left:21px !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}.frm-type-ranking .frm_option_key input[id*=field_key_]{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-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{font-size:var(--text-md);color:var(--grey-700);padding:var(--gap-sm);display:block}.frm-form-setting-tabs{margin-top:19px !important}.frm-form-setting-tabs a{font-size:var(--text-md);color:var(--grey-900);border-radius:var(--small-radius);padding:13px var(--gap-sm);margin-left:var(--gap-xs);margin-right:var(--gap-xs);transition:background-color .2s ease-out}.frm-form-setting-tabs a:hover{color:var(--grey-900);background:var(--grey-100)}.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-right-panel .inside i{margin:0 5px;display:inline-block;width:20px;height:20px;color:var(--grey-500)}.frm-right-panel .inside a:hover i,.frm-right-panel .inside a:hover .frmsvg{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)}.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;cursor:pointer}.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:not(#frm_testing_mode .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:0 .47px .94px 0 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}#form_settings_page .frm-inner-content{position:relative;padding-right:var(--gap-xl);padding-bottom:150px;padding-left:var(--gap-xl)}#form_settings_page .frm-inner-content>.frm_updated_message:first-child{margin-top:0}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{font-size:var(--text-md);border-top:1px solid var(--grey-200);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_form_settings .frm-form-setting-tabs a .frmsvg{width:24px;height:24px}.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_settings h2,.frm_email_settings h3{border:0;padding:0;font-weight:500 !important}.frm_email_settings h3{font-size:var(--text-sm);color:var(--grey-600);margin:var(--gap-md) 0}.frm_email_settings .frm-border-icon .frmsvg{color:var(--primary-700)}#frm_email_addon_menu .frm-search{float:unset;clear:unset;width:100%;max-width:380px}#frm_email_addon_menu .frm-search input[type=search]{height:44px}#frm-actions-filter-content:not([data-active-filter=all]) .frm-group-heading{display:none}.frm_actions_list .frm-card-item.frm-card-item--outlined{padding-left:var(--gap-sm);padding-right:var(--gap-sm);margin:0;transition:box-shadow 200ms ease-in-out,background-color 200ms ease-out}.frm_actions_list .frm-card-item.frm-card-item--outlined:hover{background-color:var(--grey-25)}.frm_actions_list .frm-card-item.frm-card-item--outlined h3{color:var(--grey-800)}.frm_actions_list .frm-card-item.frm-card-item--outlined h3 .frm-new-pill{margin-left:0}.frm_actions_list .frm-card-item.frm-card-item--outlined:has(.frm_n8n_action) h3{text-transform:lowercase !important}.frm_actions_list .frm-card-item.frm-card-item--outlined .frm_single_action{display:none;align-items:center;gap:var(--gap-2xs);font-size:var(--text-sm) !important;padding:7px var(--gap-sm) !important}.frm_actions_list .frm-card-item.frm-card-item--outlined .frm_single_action.frm_already_used{opacity:.5 !important}.frm_actions_list .frm-card-item.frm-card-item--outlined .frm_single_action .frmsvg{width:20px;height:20px;opacity:1}.frm_actions_list .frm-card-item.frm-card-item--outlined:hover .frm_single_action,.frm_actions_list .frm-card-item.frm-card-item--outlined:focus-within .frm_single_action{display:flex}.frm_posttax_opt_list{border:1px solid var(--grey-300);padding:var(--gap-md) var(--gap-sm);border-radius:var(--small-radius);margin-top:var(--gap-md)}.frm_form_action_settings{margin-bottom:12px}.frm_form_action_settings h2,.frm_form_action_settings h3{border-top:1px solid var(--grey-200);padding-top:var(--gap-md);margin:var(--gap-sm) 0}.frm_form_action_settings .widget-top{color:var(--grey-700);background:#fff;border-radius:var(--small-radius);border-color:var(--grey-300);box-shadow:none;transition:background-color 200ms ease-out}.frm_form_action_settings .widget-top:focus-visible{outline:1px solid var(--primary-500);outline-offset:-1px}.frm_form_action_settings .widget-title{min-width:0}.frm_form_action_settings .widget-title h4 span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frm_form_action_settings .frm_email_icons{display:none}.frm_form_action_settings .frm_email_icons a:focus-visible,.frm_form_action_settings .frm_email_icons .frm_toggle:focus-visible{outline:1px solid var(--primary-500);outline-offset:2px;border-radius:var(--small-radius)}.frm_form_action_settings .widget-action{color:var(--grey-800);transition:transform 200ms ease-out}.frm_form_action_settings .widget-action:focus-visible{outline:1px solid var(--primary-500);outline-offset:2px;border-radius:var(--small-radius)}.frm_form_action_settings:hover .widget-top,.frm_form_action_settings:focus-within .widget-top{background:var(--grey-25)}.frm_form_action_settings:hover .frm_email_icons,.frm_form_action_settings:focus-within .frm_email_icons{display:flex}.frm_form_action_settings.open .widget-top{background:var(--grey-25);border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}.frm_form_action_settings.open .widget-action{transform:rotate(-180deg)}.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:var(--gap-xs) var(--gap-sm);border-color:var(--grey-300);border-bottom-left-radius:var(--small-radius);border-bottom-right-radius:var(--small-radius)}.frm_form_action_settings .widget-inside .frm_add_remove[style*="display: block"]+p{margin-top:0;margin-bottom:var(--gap-xs)}.frm_form_action_settings .widget-inside .frm_add_remove>.frm_grid_container[id^=frm_post]:not(:first-of-type){margin-top:var(--gap-sm)}.frm_form_action_settings .widget-inside p{margin-bottom:var(--gap-sm)}.frm_form_action_settings .widget-inside p>label{display:flex;align-items:center;gap:var(--gap-xs)}.frm_form_action_settings .widget-inside p>label .frmsvg{display:flex}.frm_form_action_settings .widget-inside td p{margin-bottom:var(--gap-md)}.frm_form_action_settings .widget-inside>.frm_warning_style,.frm_form_action_settings .widget-inside>.frm_note_style{margin-top:var(--gap-xs)}.frm_form_action_settings .widget-inside .frm_image_data{justify-content:flex-start;gap:var(--gap-2xs)}.frm_square_action .frm_square_icon{position:relative;top:2px;left:1px;zoom:1.2}.frm-border-icon .frm_square_icon{width:22px;height:22px;overflow:visible}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{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{position:relative;float:right;margin:-4px 0 0;z-index:1}.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}.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}.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)}.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_form_settings .frmsvg.frm-show-box,.frm_form_settings .frmsvg.frm-show-inline-modal,.frm_form_settings i.frm-show-box,.frm_form_settings i.frm-show-inline-modal{margin:4px 4px 0}.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_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.frm_show_update{cursor:pointer}#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.frm_show_update,#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,#frm-insert-fields li.frm_show_update.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}.frmsvg.frm_svg7{width:7px;height:7px}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.frm_at_limit{opacity:.5}.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}.ui-draggable-dragging .frm-meta-tag.frm-new-pill{display:none}li.frm_noallow.button,.frm_noallow{opacity:.5}li.frm_noallow.button.frm_show_upgrade,li.frm_noallow.button.frm_show_update{cursor:pointer}.field_type_list li.frm_noallow.button.frm_show_upgrade:hover,.field_type_list li.frm_noallow.button.frm_show_update:hover{border-color:inherit}.frm_noallow a{color:inherit}#frm_upgrade_modal_image{max-width:200px}#frm_upgrade_modal .cta-inside{display:flex;flex-direction:column;gap:var(--gap-sm)}#frm_upgrade_modal .frm-upgrade-message[style*="display: none"]~.frm-addon-status,#frm_upgrade_modal .frm-upgrade-message[style*="display: none"]~a.button{margin-top:var(--gap-sm)}#frm_upgrade_modal .frm-upgrade-message img{width:100%;margin:var(--gap-sm) 0 10px}#frm_upgrade_modal .frm-oneclick.frm_hidden{display:none !important}#frm_upgrade_modal .frm-oneclick-button{margin-left:auto}#frm_upgrade_modal .frm-upgrade-modal-actions{flex-direction:row-reverse;justify-content:flex-start;margin:0 !important}#frm_upgrade_modal .frm-upgrade-link{align-self:end}#frm_upgrade_modal.frm-success .frm-circled-icon svg{width:24px;height:24px}#frm_upgrade_modal.frm-success .frm-upgrade-modal-title-prefix,#frm_upgrade_modal.frm-success .frm_are_not_installed{display:none !important}#frm_upgrade_modal.frm-success .frm-upgrade-modal-title-suffix{display:inline !important}#frm_upgrade_modal.frm-success .frm-addon-status{margin:0}#frm_upgrade_modal.frm-success .frm-addon-status .frm-save-and-reload-options{display:flex;gap:var(--gap-xs);flex-direction:row-reverse;margin:0}#frm_upgrade_modal.frm-success .frm-addon-status .frm-save-and-reload-options .frm-save-and-reload{margin:0}.frm-dialog[aria-describedby=frm_upgrade_modal]{position:fixed !important;top:50% !important;left:50% !important;transform:translate(-50%, -50%) !important}.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 .frmsvg.frm_svg32{width:32px !important;height:32px !important}.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-border-icon--small{width:24px;height:24px;border-radius:var(--x-small-radius)}.frm-border-icon--small .frmsvg{width:14px;height:14px}.frm-border-icon:has(.frm-inverse){border-color:rgba(0,0,0,0)}.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 12px;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-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-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}#frm_email_addon_menu>:first-child.frm-h-stack{flex-direction:column;align-items:stretch;gap:var(--gap-sm)}#frm_email_addon_menu .frm-search{max-width:unset}}@media only screen and (max-width: 1050px){.frm-white-body,.frm_wrap{--biggest-sidebar: 390px}#form_settings_page .columns-2{margin: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-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}.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:var(--gap-md) 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:12px;padding:var(--gap-sm);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-card-item.frm-card-item--outlined{padding:var(--gap-sm) var(--gap-md);gap:12px;border-color:var(--grey-300);box-shadow:var(--box-shadow-sm);transition:box-shadow 200ms ease-in-out}.frm-card-item.frm-card-item--outlined:hover{box-shadow:var(--box-shadow-md)}.frm-card-item.frm-card-item--outlined p,.frm-card-item.frm-card-item--outlined h3{margin:0}.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-coupons-upsell-wrapper{display:flex;flex-direction:column;align-items:center}.frm-coupons-upsell-wrapper p{margin-top:var(--gap-xs);max-width:364px;text-align:center}.frm-coupons-upsell-wrapper img{max-width:100%;max-height:300px}.frm-coupons-upsell-wrapper h2{margin-bottom:0}.frm-coupons-upsell{background-color:#f5f5f7;border-radius:16px;border:6px solid #fff;box-shadow:0 .471px 1.412px 0 rgba(16,24,40,.1),0 .471px .941px 0 rgba(16,24,40,.06);text-align:center;width:100%;box-sizing:border-box}.frm-main-coupons-upsell{margin-top:var(--gap-lg)}.frm-main-coupons-upsell img{vertical-align:bottom}.frm-secondary-coupons-upsells{margin-top:var(--gap-md);width:100%}#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-get-free-templates-banner{flex-grow:1}.frm-get-free-templates-banner .frm-banner-image-wrapper{display:flex;justify-content:center;align-items:flex-end;background-color:var(--primary-25);padding:19px 14px 0;border-radius:var(--small-radius)}.frm-get-free-templates-banner[data-direction=vertical]{flex-direction:column;align-items:stretch;gap:12px}.frm-get-free-templates-banner[data-direction=vertical] .frm-banner-content{align-items:center;text-align:center}.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_email_row span.frm_add_logic_link~.frm-h-stack-xs.frm-bt-200.frm-py-md{margin-top:var(--gap-md)}#frm_builder_page #frm-options-panel .frm-single-settings.frm-type-ranking .frm_image_styling_frame{margin-left:12px}
diff --git a/css/frm_testing_mode.css b/css/frm_testing_mode.css
index 76bd015666..cff98969db 100644
--- a/css/frm_testing_mode.css
+++ b/css/frm_testing_mode.css
@@ -1,3 +1,3 @@
: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, 0.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;--x-small-radius: 4px;--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)}.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;cursor:pointer}.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:not(#frm_testing_mode .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}.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 12px;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}.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_single_paypal_settings .frm_add_pp_logic.button,.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,.frm_single_paypal_settings .frm_add_pp_logic.button{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,.frm_single_paypal_settings .frm_add_pp_logic.button:hover,.frm_single_paypal_settings .frm_add_pp_logic.button:focus,.frm_single_paypal_settings .frm_add_pp_logic.button:active{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-primary: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)}.frm-btn-unstyled{font:inherit;background:none;border:none;padding:0;cursor:pointer;outline:inherit}.frm-btn-unstyled:hover,.frm-btn-unstyled:focus,.frm-btn-unstyled:active{text-decoration:none;background:none;border:none;box-shadow:none}.frm-btn-unstyled:disabled,.frm-btn-unstyled[disabled]{pointer-events:none;opacity:.65}/*!
* 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%}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;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,#frm_field_group_controls .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-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}.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_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_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}#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 .frm-new-pill{margin-left:0;vertical-align:bottom}.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}.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_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-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:rgba(255,255,255,.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}.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)}.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-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 .frmsvg.frm_svg32{width:32px !important;height:32px !important}.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-border-icon--small{width:24px;height:24px;border-radius:var(--x-small-radius)}.frm-border-icon--small .frmsvg{width:14px;height:14px}.frm-upgrade-message img{max-width:100%}.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-start{align-items:flex-start}.frm-items-center{align-items:center}.frm-items-stretch{align-items:stretch}.frm-self-normal{align-self:normal}.frm-self-baseline{align-self:baseline}.frm-self-end{align-self:flex-end}#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-flex-row-reverse{flex-direction:row-reverse}.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_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)}}.frmsvg{fill:currentColor;width:18px;height:18px;vertical-align:middle}body.frm_preview_page .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_testing_mode{border-radius:1rem;background-color:#fff;border-color:rgba(0,0,0,.1019607843);border-width:1px;border-style:solid;padding:16px 20px;margin-bottom:40px;position:relative}#frm_testing_mode h2{font-size:18px;font-weight:600;color:#000;margin-bottom:0}#frm_testing_mode label{font-size:12px;font-weight:600}#frm_testing_mode label span.frm_toggle_opt{color:var(--grey-800);font-weight:600}#frm_testing_mode label:not(:first-child){margin-left:var(--gap-xs)}#frm_testing_mode a.frm_button{margin-left:auto;border-radius:20px;font-size:14px}#frm_testing_mode hr{color:unset;background:var(--grey-200);height:1px;border:none}#frm_testing_mode>div:nth-of-type(2){display:flex;align-items:center}#frm_testing_mode .multiselect.dropdown-toggle::after{border:none}#frm_testing_mode .frmsvg{width:11px;height:11px;margin-right:var(--gap-2xs);position:relative;top:1px}#frm_testing_mode .frm_toggle_block{gap:var(--gap-xs)}#frm_testing_mode label:not(.frm_toggle_block){margin-right:2px}#frm_testing_mode select{width:auto !important;min-height:auto !important;outline:0;box-shadow:var(--box-shadow-xs);border-radius:var(--small-radius);border-width:1px;padding:5px 14px;border-color:var(--grey-300);color:var(--grey-800);font-size:var(--text-md);margin:0;line-height:var(--leading);appearance:none;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}#frm_testing_mode select:focus{background-color:rgba(0,0,0,0) !important}#frm_testing_mode select,#frm_testing_mode .btn-group button.multiselect.dropdown-toggle{border-radius:var(--medium-radius);font-size:12px;font-weight:600;height:30px}#frm_testing_mode .btn-group button.multiselect.dropdown-toggle{padding-top:0;padding-bottom:0}#frm_testing_mode .multiselect-selected-text{position:relative;top:2px}#frm_testing_mode #frm_testmode_fill_in_empty_form_fields{background-color:var(--primary-500);color:#fff;padding:8px 18px}#frm_testing_mode .frm_help{vertical-align:top}#frm_testing_mode .frm-button-secondary:hover,#frm_testmode_disable_required_fields_modal .frm-button-secondary:hover,#frm_ai_autofill_error_modal .frm-button-secondary:hover{border-color:var(--grey-300) !important;color:var(--grey-800);background:var(--grey-50) !important;box-shadow:none !important;outline:none !important}#frm_testing_mode a,#frm_testmode_disable_required_fields_modal a,#frm_ai_autofill_error_modal a{text-decoration:none}#frm_testmode_disable_required_fields_modal p{font-size:16px}#frm_test_mode_pagination{display:inline-block;margin-left:var(--gap-xs)}#frm_test_mode_pagination input[type=button]{border:1px solid var(--grey-300);padding:8px 12px;border-radius:8px;font-size:12px;background-color:#fff}#frm_test_mode_pagination input[type=button].frm_test_mode_active_page{background-color:var(--primary-500);border-color:var(--primary-500);color:#fff}#frm_test_mode_pagination input[type=button]:not(.frm_noallow){cursor:pointer}#frm_testmode_start_over{position:absolute;right:20px;top:20px;background-color:#fff;color:var(--grey-800);border-radius:20px;padding:4px 12px;border-color:var(--grey-300);font-weight:600}#frm_testmode_start_over img{vertical-align:middle;position:relative;bottom:2px}.frm_noallow{opacity:.5}#frm_testmode_enabled_form_actions_container{vertical-align:middle;display:inline-block;max-width:200px}#frm_testmode_upgrade{padding:var(--gap-xs) var(--gap-sm);text-align:center;font-size:var(--text-xs);margin-top:var(--gap-sm);line-height:var(--text-xs);font-weight:500;text-decoration:none;display:block;margin-left:-20px;margin-right:-20px;margin-bottom:-16px;border-radius:0 0 16px 16px}.frm_warning_style:has(.frm-addon-button){display:flex;padding:var(--gap-sm);line-height:40px}.frm_warning_style .frm-addon-button,#frm_upgrade_modal a.frm-button-primary{text-decoration:none}#frm_upgrade_modal a.frm-button-primary{cursor:pointer}.frm-dialog{z-index:1001}.frm-dialog+.ui-widget-overlay{z-index:1000}@media(max-width: 1024px){#frm_testing_mode>div>label:not(#frm_quick_jump_label){width:100%;display:block !important;margin-left:0 !important}#frm_testing_mode>div>label:not(#frm_quick_jump_label){margin-top:var(--gap-sm)}#frm_testmode_fill_in_empty_form_fields{display:block}#frm_testing_mode>div:nth-of-type(2){flex-direction:column;align-items:normal}#frm_test_mode_pagination{margin-left:0}}
+ */.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%}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;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,#frm_field_group_controls .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-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}.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_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_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}#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 .frm-new-pill{margin-left:0;vertical-align:bottom}.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}.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_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-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:rgba(255,255,255,.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}.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)}.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-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 .frmsvg.frm_svg32{width:32px !important;height:32px !important}.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-border-icon--small{width:24px;height:24px;border-radius:var(--x-small-radius)}.frm-border-icon--small .frmsvg{width:14px;height:14px}.frm-border-icon:has(.frm-inverse){border-color:rgba(0,0,0,0)}.frm-upgrade-message img{max-width:100%}.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-start{align-items:flex-start}.frm-items-center{align-items:center}.frm-items-stretch{align-items:stretch}.frm-self-normal{align-self:normal}.frm-self-baseline{align-self:baseline}.frm-self-end{align-self:flex-end}#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-flex-row-reverse{flex-direction:row-reverse}.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_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)}}.frmsvg{fill:currentColor;width:18px;height:18px;vertical-align:middle}body.frm_preview_page .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_testing_mode{border-radius:1rem;background-color:#fff;border-color:rgba(0,0,0,.1019607843);border-width:1px;border-style:solid;padding:16px 20px;margin-bottom:40px;position:relative}#frm_testing_mode h2{font-size:18px;font-weight:600;color:#000;margin-bottom:0}#frm_testing_mode label{font-size:12px;font-weight:600}#frm_testing_mode label span.frm_toggle_opt{color:var(--grey-800);font-weight:600}#frm_testing_mode label:not(:first-child){margin-left:var(--gap-xs)}#frm_testing_mode a.frm_button{margin-left:auto;border-radius:20px;font-size:14px}#frm_testing_mode hr{color:unset;background:var(--grey-200);height:1px;border:none}#frm_testing_mode>div:nth-of-type(2){display:flex;align-items:center}#frm_testing_mode .multiselect.dropdown-toggle::after{border:none}#frm_testing_mode .frmsvg{width:11px;height:11px;margin-right:var(--gap-2xs);position:relative;top:1px}#frm_testing_mode .frm_toggle_block{gap:var(--gap-xs)}#frm_testing_mode label:not(.frm_toggle_block){margin-right:2px}#frm_testing_mode select{width:auto !important;min-height:auto !important;outline:0;box-shadow:var(--box-shadow-xs);border-radius:var(--small-radius);border-width:1px;padding:5px 14px;border-color:var(--grey-300);color:var(--grey-800);font-size:var(--text-md);margin:0;line-height:var(--leading);appearance:none;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}#frm_testing_mode select:focus{background-color:rgba(0,0,0,0) !important}#frm_testing_mode select,#frm_testing_mode .btn-group button.multiselect.dropdown-toggle{border-radius:var(--medium-radius);font-size:12px;font-weight:600;height:30px}#frm_testing_mode .btn-group button.multiselect.dropdown-toggle{padding-top:0;padding-bottom:0}#frm_testing_mode .multiselect-selected-text{position:relative;top:2px}#frm_testing_mode #frm_testmode_fill_in_empty_form_fields{background-color:var(--primary-500);color:#fff;padding:8px 18px}#frm_testing_mode .frm_help{vertical-align:top}#frm_testing_mode .frm-button-secondary:hover,#frm_testmode_disable_required_fields_modal .frm-button-secondary:hover,#frm_ai_autofill_error_modal .frm-button-secondary:hover{border-color:var(--grey-300) !important;color:var(--grey-800);background:var(--grey-50) !important;box-shadow:none !important;outline:none !important}#frm_testing_mode a,#frm_testmode_disable_required_fields_modal a,#frm_ai_autofill_error_modal a{text-decoration:none}#frm_testmode_disable_required_fields_modal p{font-size:16px}#frm_test_mode_pagination{display:inline-block;margin-left:var(--gap-xs)}#frm_test_mode_pagination input[type=button]{border:1px solid var(--grey-300);padding:8px 12px;border-radius:8px;font-size:12px;background-color:#fff}#frm_test_mode_pagination input[type=button].frm_test_mode_active_page{background-color:var(--primary-500);border-color:var(--primary-500);color:#fff}#frm_test_mode_pagination input[type=button]:not(.frm_noallow){cursor:pointer}#frm_testmode_start_over{position:absolute;right:20px;top:20px;background-color:#fff;color:var(--grey-800);border-radius:20px;padding:4px 12px;border-color:var(--grey-300);font-weight:600}#frm_testmode_start_over img{vertical-align:middle;position:relative;bottom:2px}.frm_noallow{opacity:.5}#frm_testmode_enabled_form_actions_container{vertical-align:middle;display:inline-block;max-width:200px}#frm_testmode_upgrade{padding:var(--gap-xs) var(--gap-sm);text-align:center;font-size:var(--text-xs);margin-top:var(--gap-sm);line-height:var(--text-xs);font-weight:500;text-decoration:none;display:block;margin-left:-20px;margin-right:-20px;margin-bottom:-16px;border-radius:0 0 16px 16px}.frm_warning_style:has(.frm-addon-button){display:flex;padding:var(--gap-sm);line-height:40px}.frm_warning_style .frm-addon-button,#frm_upgrade_modal a.frm-button-primary{text-decoration:none}#frm_upgrade_modal a.frm-button-primary{cursor:pointer}.frm-dialog{z-index:1001}.frm-dialog+.ui-widget-overlay{z-index:1000}@media(max-width: 1024px){#frm_testing_mode>div>label:not(#frm_quick_jump_label){width:100%;display:block !important;margin-left:0 !important}#frm_testing_mode>div>label:not(#frm_quick_jump_label){margin-top:var(--gap-sm)}#frm_testmode_fill_in_empty_form_fields{display:block}#frm_testing_mode>div:nth-of-type(2){flex-direction:column;align-items:normal}#frm_test_mode_pagination{margin-left:0}}
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 8f267c03ba..1469360add 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -89,6 +89,8 @@ export default [
expect: 'readonly',
assert: 'readonly',
chai: 'readonly',
+ // Used for Google Pay payments in PayPal Commerce frontend JS.
+ google: 'readonly'
},
},
plugins: {
diff --git a/formidable.php b/formidable.php
index fe25dd64ae..1ea36e2c60 100644
--- a/formidable.php
+++ b/formidable.php
@@ -108,33 +108,19 @@ function frm_class_autoloader( $class_name, $filepath ) {
return;
}
+ $filepath = $original_filepath;
+
if ( preg_match( '/^FrmStrpLite.+$/', $class_name ) || preg_match( '/^FrmTransLite.+$/', $class_name ) ) {
// Autoload for /stripe/ folder.
- $filepath = $original_filepath . '/stripe/';
-
- if ( preg_match( '/^.+Helper$/', $class_name ) ) {
- $filepath .= 'helpers/';
- } elseif ( preg_match( '/^.+Controller$/', $class_name ) ) {
- $filepath .= 'controllers/';
- } else {
- $filepath .= 'models/';
- }
-
- $filepath .= $class_name . '.php';
-
- if ( file_exists( $filepath ) ) {
- require $filepath;
- }
-
- return;
- }
-
- if ( ! preg_match( '/^FrmSquareLite.+$/', $class_name ) ) {
+ $filepath .= '/stripe/';
+ } elseif ( preg_match( '/^FrmSquareLite.+$/', $class_name ) ) {
+ $filepath .= '/square/';
+ } elseif ( preg_match( '/^FrmPayPalLite.+$/', $class_name ) ) {
+ $filepath .= '/paypal/';
+ } else {
return;
}
- $filepath = $original_filepath . '/square/';
-
if ( preg_match( '/^.+Helper$/', $class_name ) ) {
$filepath .= 'helpers/';
} elseif ( preg_match( '/^.+Controller$/', $class_name ) ) {
diff --git a/images/icons.svg b/images/icons.svg
index 218833e30e..81cbc5da2c 100644
--- a/images/icons.svg
+++ b/images/icons.svg
@@ -314,7 +314,7 @@
-
+
diff --git a/js/formidable_admin.js b/js/formidable_admin.js
index a3a0988bc2..f226ee94ad 100644
--- a/js/formidable_admin.js
+++ b/js/formidable_admin.js
@@ -1 +1 @@
-(()=>{var e={65:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(8793),o=r(1323);function i(e){var t=(0,n.A)(e);return function(e){return(0,o.A)(t,e)}}},1323:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,r){if(e)throw t;return r}};function o(e,t){var r,o,i,a,l,s,c=[];for(r=0;r{"use strict";r.d(t,{A:()=>o});var n=r(65);function o(e){var t=(0,n.A)(e);return function(e){return+t({n:e})}}},8793:(e,t,r)=>{"use strict";var n,o,i,a;function l(e){for(var t,r,l,s,c=[],d=[];t=e.match(a);){for(r=t[0],(l=e.substr(0,t.index).trim())&&c.push(l);s=d.pop();){if(i[r]){if(i[r][0]===s){r=i[r][1]||r;break}}else if(o.indexOf(s)>=0||n[s]l}),n={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},o=["(","?"],i={")":["("],":":["?","?:"]},a=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/},7521:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(6956),o=r(7395);const i=function(e,t){return function(r,i,a){var l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,s=e[t];if((0,o.A)(r)&&(0,n.A)(i))if("function"==typeof a)if("number"==typeof l){var c={callback:a,priority:l,namespace:i};if(s[r]){var d,f=s[r].handlers;for(d=f.length;d>0&&!(l>=f[d-1].priority);d--);d===f.length?f[d]=c:f.splice(d,0,c),s.__current.forEach(function(e){e.name===r&&e.currentIndex>=d&&e.currentIndex++})}else s[r]={handlers:[c],runs:0};"hookAdded"!==r&&e.doAction("hookAdded",r,i,a,l)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}}},11:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){return function(){var r,n,o=e[t];return null!==(r=null===(n=o.__current[o.__current.length-1])||void 0===n?void 0:n.name)&&void 0!==r?r:null}}},5375:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7395);const o=function(e,t){return function(r){var o=e[t];if((0,n.A)(r))return o[r]&&o[r].runs?o[r].runs:0}}},3561:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){return function(r){var n=e[t];return void 0===r?void 0!==n.__current[0]:!!n.__current[0]&&r===n.__current[0].name}}},8830:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){return function(r,n){var o=e[t];return void 0!==n?r in o&&o[r].handlers.some(function(e){return e.namespace===n}):r in o}}},7765:(e,t,r)=>{"use strict";r.d(t,{A:()=>u});var n=r(3029),o=r(7521),i=r(4194),a=r(8830),l=r(6763),s=r(11),c=r(3561),d=r(5375),f=function e(){(0,n.A)(this,e),this.actions=Object.create(null),this.actions.__current=[],this.filters=Object.create(null),this.filters.__current=[],this.addAction=(0,o.A)(this,"actions"),this.addFilter=(0,o.A)(this,"filters"),this.removeAction=(0,i.A)(this,"actions"),this.removeFilter=(0,i.A)(this,"filters"),this.hasAction=(0,a.A)(this,"actions"),this.hasFilter=(0,a.A)(this,"filters"),this.removeAllActions=(0,i.A)(this,"actions",!0),this.removeAllFilters=(0,i.A)(this,"filters",!0),this.doAction=(0,l.A)(this,"actions"),this.applyFilters=(0,l.A)(this,"filters",!0),this.currentAction=(0,s.A)(this,"actions"),this.currentFilter=(0,s.A)(this,"filters"),this.doingAction=(0,c.A)(this,"actions"),this.doingFilter=(0,c.A)(this,"filters"),this.didAction=(0,d.A)(this,"actions"),this.didFilter=(0,d.A)(this,"filters")};const u=function(){return new f}},4194:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(6956),o=r(7395);const i=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(i,a){var l=e[t];if((0,o.A)(i)&&(r||(0,n.A)(a))){if(!l[i])return 0;var s=0;if(r)s=l[i].handlers.length,l[i]={runs:l[i].runs,handlers:[]};else for(var c=l[i].handlers,d=function(e){c[e].namespace===a&&(c.splice(e,1),s++,l.__current.forEach(function(t){t.name===i&&t.currentIndex>=e&&t.currentIndex--}))},f=c.length-1;f>=0;f--)d(f);return"hookRemoved"!==i&&e.doAction("hookRemoved",i,a),s}}}},6763:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n){var o=e[t];o[n]||(o[n]={handlers:[],runs:0}),o[n].runs++;for(var i=o[n].handlers,a=arguments.length,l=new Array(a>1?a-1:0),s=1;s{"use strict";r.d(t,{se:()=>n});var n=(0,r(7765).A)();n.addAction,n.addFilter,n.removeAction,n.removeFilter,n.hasAction,n.hasFilter,n.removeAllActions,n.removeAllFilters,n.doAction,n.applyFilters,n.currentAction,n.currentFilter,n.doingAction,n.doingFilter,n.didAction,n.didFilter,n.actions,n.filters},7395:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e){return"string"!=typeof e||""===e?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(e)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(e)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)}},6956:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e){return"string"!=typeof e||""===e?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(e)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)}},772:(e,t,r)=>{"use strict";r.d(t,{h:()=>c});var n=r(4467),o=r(5397);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function a(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"default";n.data[t]=a(a(a({},l),n.data[t]),e),n.data[t][""]=a(a({},l[""]),n.data[t][""])},f=function(e,t){d(e,t),c()},u=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;return n.data[e]||d(void 0,e),n.dcnpgettext(e,t,r,o,i)},m=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},_=function(e,t,n){var o=u(n,t,e);return r?(o=r.applyFilters("i18n.gettext_with_context",o,e,t,n),r.applyFilters("i18n.gettext_with_context_"+m(n),o,e,t,n)):o};if(e&&f(e,t),r){var p=function(e){s.test(e)&&c()};r.addAction("hookAdded","core/i18n",p),r.addAction("hookRemoved","core/i18n",p)}return{getLocaleData:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return n.data[e]},setLocaleData:f,resetLocaleData:function(e,t){n.data={},n.pluralForms={},f(e,t)},subscribe:function(e){return i.add(e),function(){return i.delete(e)}},__:function(e,t){var n=u(t,void 0,e);return r?(n=r.applyFilters("i18n.gettext",n,e,t),r.applyFilters("i18n.gettext_"+m(t),n,e,t)):n},_x:_,_n:function(e,t,n,o){var i=u(o,void 0,e,t,n);return r?(i=r.applyFilters("i18n.ngettext",i,e,t,n,o),r.applyFilters("i18n.ngettext_"+m(o),i,e,t,n,o)):i},_nx:function(e,t,n,o,i){var a=u(i,o,e,t,n);return r?(a=r.applyFilters("i18n.ngettext_with_context",a,e,t,n,o,i),r.applyFilters("i18n.ngettext_with_context_"+m(i),a,e,t,n,o,i)):a},isRTL:function(){return"rtl"===_("ltr","text direction")},hasTranslation:function(e,t,o){var i,a,l=t?t+""+e:e,s=!(null===(i=n.data)||void 0===i||null===(a=i[null!=o?o:"default"])||void 0===a||!a[l]);return r&&(s=r.applyFilters("i18n.has_translation",s,e,t,o),s=r.applyFilters("i18n.has_translation_"+m(o),s,e,t,o)),s}}}},5839:(e,t,r)=>{"use strict";r.d(t,{__:()=>a});var n=r(772),o=r(2133),i=(0,n.h)(void 0,void 0,o.se),a=(i.getLocaleData.bind(i),i.setLocaleData.bind(i),i.resetLocaleData.bind(i),i.subscribe.bind(i),i.__.bind(i));i._x.bind(i),i._n.bind(i),i._nx.bind(i),i.isRTL.bind(i),i.hasTranslation.bind(i)},9575:(e,t,r)=>{"use strict";r.d(t,{__:()=>n.__}),r(181),r(772);var n=r(5839)},181:(e,t,r)=>{"use strict";var n=r(8616),o=r.n(n);r(7604),o()(console.error)},1105:(e,t,r)=>{"use strict";r.r(t),r.d(t,{addonError:()=>u,afterAddonInstall:()=>f,extractErrorFromAddOnResponse:()=>d,toggleAddonState:()=>c});var n=r(9575);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,l=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=i.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(e){c=!0,o=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r5&&void 0!==arguments[5]?arguments[5]:"frm_activate_addon",d=frm_admin_js,f=document.querySelectorAll(".frm-addon-status");f.forEach(function(t){t.textContent=e,t.style.display="block"}),t.css({opacity:"0"}),document.querySelectorAll(".frm-oneclick").forEach(function(e){e.style.display="none"}),function(){var e=document.getElementById("frm_upgrade_modal");if(e){e.classList.add("frm-success");var t=e.querySelector(".frm-upgrade-message");if(t){var r=t.querySelector("img");t.replaceChildren((0,n.__)("Great! Everything's ready to go!","formidable"),document.createElement("br"),(0,n.__)("You just need to refresh the builder so the new field becomes available.","formidable")),r&&t.append(r)}var o=document.querySelector(".frm-addon-status");o&&(o.textContent="");var i,a=e.querySelector(".frm-circled-icon");if(a)a.classList.add("frm-circled-icon-green"),null===(i=a.querySelector("svg"))||void 0===i||i.replaceWith(s({href:"#frm_checkmark_icon"}))}}();var u={frm_activate_addon:{class:"frm-addon-active",message:d.active},frm_deactivate_addon:{class:"frm-addon-installed",message:d.installed},frm_uninstall_addon:{class:"frm-addon-not-installed",message:d.not_installed}};u.frm_install_addon=u.frm_activate_addon;var _=o(r,1)[0];_&&(_.textContent=u[c].message);var p=o(i,1)[0].parentElement;p.classList.remove("frm-addon-not-installed","frm-addon-installed","frm-addon-active"),p.classList.add(u[c].class),o(t,1)[0].classList.remove("frm_loading_button"),document.querySelectorAll(".frm-admin-page-import, #frm-admin-smtp, #frm-welcome").length>0?window.location.reload():["settings","form_builder"].includes(a)&&f.forEach(function(e){var t=null!==e.closest("#frm_upgrade_modal");e.append(function(e,t){var r,o=[m(e)];return t&&o.push(((r=document.createElement("a")).setAttribute("href","#"),r.classList.add("button","button-secondary","frm-button-secondary","dismiss"),r.textContent=(0,n.__)("Not Now","formidable"),r)),l({className:"frm-save-and-reload-options",children:o})}(a,t))})}function u(e,t,r){e.form?(jQuery(".frm-inline-error").remove(),r.closest(".frm-card").html(e.form).css({padding:5}).find("#upgrade").attr("rel",r.attr("rel")).on("click",_)):(t.append('")),r.removeClass("frm_loading_button"),jQuery(".frm-addon-error").delay(4e3).fadeOut())}function m(e){var t=document.createElement("button");return t.classList.add("frm-save-and-reload","button","button-primary","frm-button-primary"),t.textContent=(0,n.__)("Save and Reload","formidable"),t.addEventListener("click",function(){var t;"form_builder"===e?((t=document.getElementById("frm_submit_side_top")).classList.contains("frm_submit_ajax")&&t.setAttribute("data-new-addon-installed",!0),t.click()):"settings"===e&&function(){var e=document.getElementById("form_settings_page");if(e){var t=e.querySelector("form.frm_form_settings");null!==t&&(wp.hooks.doAction("frm_reset_fields_updated"),t.submit())}}()}),t}function _(e){e.preventDefault();var t=jQuery(this),r=t.parent().parent(),n=t.attr("rel");t.addClass("frm_loading_button"),jQuery.ajax({url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:"frm_install_addon",nonce:frmAdminJs.nonce,plugin:n,hostname:r.find("#hostname").val(),username:r.find("#username").val(),password:r.find("#password").val()},success:function(e){var n,o,i=d(e=null!==(n=null===(o=e)||void 0===o?void 0:o.data)&&void 0!==n?n:e);i?u(i,r,t):f(e,t,message,r)},error:function(){t.removeClass("frm_loading_button")}})}},4260:(e,t,r)=>{"use strict";r.r(t),r.d(t,{addOneClick:()=>i,initModal:()=>a,initUpgradeModal:()=>l});var n=r(9575),o=frmDom.svg;function i(e,t,r){var i;if("modal"===t)i=document.getElementById("frm_upgrade_modal");else{if("tab"!==t)return;i=document.getElementById(e.getAttribute("href").substr(1))}var a,l=i.querySelector(".frm-oneclick"),s=i.querySelector(".frm-upgrade-message"),c=i.querySelector(".frm-upgrade-link"),d=i.querySelector(".frm-oneclick-button"),f=i.querySelector(".frm-addon-status"),u=e.getAttribute("data-oneclick"),m=e.getAttribute("data-message"),_="block",p="block",g="none",y=i.querySelector(".frm-circled-icon");y&&(y.classList.remove("frm-circled-icon-green"),null===(a=y.querySelector("svg"))||void 0===a||a.replaceWith(o({href:"#frm_filled_lock_icon"})));var v=i.querySelector(".frm-learn-more");if(v&&(e.dataset.learnMore?(v.href=e.dataset.learnMore,v.style.display=""):v.style.display="none"),null!==l&&null!==d&&void 0!==u&&u){null===m&&(p="none"),_="none",g="block",u=JSON.parse(u),d.className=d.className.replace(" frm-install-addon","").replace(" frm-activate-addon",""),d.className="".concat(d.className," ").concat(u.class),d.rel=u.url,l.textContent=(0,n.__)("This plugin is not activated. Would you like to activate it now?","formidable"),d.textContent=(0,n.__)("Activate","formidable");var h=e.querySelector("use");h&&(null==y||y.querySelector("svg").replaceWith(o({href:h.getAttribute("href")||h.getAttribute("xlink:href"),classList:["frm_svg32"]})))}m||(m=s.getAttribute("data-default")),void 0!==r&&(m=m.replace(' ',r)),s.innerHTML=m,e.dataset.upsellImage&&s.append(frmDom.img({src:e.dataset.upsellImage,alt:e.dataset.upgrade})),c.href=function(e,t){var r=e.getAttribute("data-link");return null!=r&&""!==r||(r=t.getAttribute("data-default")),r}(e,c),f.style.display="none",l&&(l.style.display=g),d&&(d.style.display="block"===g?"inline-block":g),s.style.display=p,c.style.display="block"===_?"inline-block":_;var b=c.closest(".frm-upgrade-modal-actions");b&&(b.style.display="block"===_?"flex":_)}function a(e,t){var r=jQuery(e);if(!r.length)return!1;void 0===t&&(t="552px");var n={dialogClass:"frm-dialog",modal:!0,autoOpen:!1,closeOnEscape:!0,width:t,resizable:!1,draggable:!1,open:function(){var e,t;jQuery(".ui-dialog-titlebar").addClass("frm_hidden").removeClass("ui-helper-clearfix"),jQuery("#wpwrap").addClass("frm_overlay"),jQuery(".frm-dialog").removeClass("ui-widget ui-widget-content ui-corner-all"),r.removeClass("ui-dialog-content ui-widget-content"),e=r,t=function(){e.dialog("close")},jQuery(".ui-widget-overlay").on("click",t),e.on("click","a.dismiss",t)},close:function(){jQuery("#wpwrap").removeClass("frm_overlay"),jQuery(".spinner").css("visibility","hidden"),this.removeAttribute("data-option-type");var e=document.getElementById("bulk-option-type");e&&(e.value="")}};return r.dialog(n),r}function l(){var e=a("#frm_upgrade_modal");function t(t){var r,o,a;if((r=t.target).classList){var l=r.classList.contains("frm_show_expired_modal")||null!==r.querySelector(".frm_show_expired_modal")||r.closest(".frm_show_expired_modal");if("change"===t.type&&r.classList.contains("frm_select_with_upgrade")){var s,c=r.options[r.selectedIndex];null!=c&&null!==(s=c.dataset)&&void 0!==s&&s.upgrade&&(r=c)}if(!r.dataset.upgrade){var d=r.closest("[data-upgrade]");if(!d){if(!(d=r.closest(".frm_field_box")))return;r.dataset.upgrade=""}r=d}if(l)wp.hooks.doAction("frm_show_expired_modal",r);else{var f=r.dataset.upgrade;if(f&&!r.classList.contains("frm_show_upgrade_tab")){t.preventDefault();var u=e.get(0);u.classList.remove("frm-success");var m=u.querySelector(".frm_lock_icon");m&&(m.style.display="block",m.classList.remove("frm_lock_open_icon"),m.querySelector("use").setAttribute("href","#frm_lock_icon"));var _="frm_upgrade_modal_image",p=document.getElementById(_);p&&p.remove(),r.dataset.image&&m&&(m.style.display="none",m.parentNode.insertBefore(frmDom.img({id:_,src:"".concat(frmGlobal.url,"/images/").concat(r.dataset.image)}),m));var g=u.querySelector(".license-level");g&&(g.textContent=function(e){return e.dataset.requires?e.dataset.requires:"Pro"}(r)),i(r,"modal",f);var y=u.querySelector(".frm_are_not_installed");y.style.display=r.dataset.image||r.dataset.oneclick?"none":"inline-block",y.textContent=y.dataset.default,u.querySelector(".frm-upgrade-modal-title-prefix").style.display=r.dataset.oneclick?"inline":"none",u.querySelector(".frm_feature_label").textContent=f,u.querySelector(".frm-upgrade-modal-title-suffix").style.display="none",u.querySelector("h2").style.display="block",e.dialog("open");var v=u.querySelector(".button-primary:not(.frm-oneclick-button)");o=v.getAttribute("href").replace(/(medium=)[a-z_-]+/gi,"$1".concat(r.getAttribute("data-medium"))),null===(a=r.getAttribute("data-content"))&&(a=""),o=o.replace(/(content=)[a-z_-]+/gi,"$1".concat(a)),v.setAttribute("href",o),r.classList.contains("frm_show_update")&&function(e){var t=e.querySelector(".frm-upgrade-modal-title-prefix");t&&(t.style.display="none");var r=e.querySelector(".frm_are_not_installed");r&&(r.textContent=(0,n.__)("require an update","formidable"),r.style.display="");var o=e.querySelector(".frm-oneclick");o&&(o.style.display="none");var i=e.querySelector(".frm-oneclick-button");i&&(i.textContent=(0,n.__)("Update Now","formidable"))}(u)}}}}!1!==e&&(document.addEventListener("click",t),frmDom.util.documentOn("change","select.frm_select_with_upgrade",t))}},8616:e=>{e.exports=function(e,t){var r,n,o=0;function i(){var i,a,l=r,s=arguments.length;e:for(;l;){if(l.args.length===arguments.length){for(a=0;a{var n;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(e){return function(e,t){var r,n,a,l,s,c,d,f,u,m=1,_=e.length,p="";for(n=0;n<_;n++)if("string"==typeof e[n])p+=e[n];else if("object"==typeof e[n]){if((l=e[n]).keys)for(r=t[m],a=0;a=0),l.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,l.width?parseInt(l.width):0);break;case"e":r=l.precision?parseFloat(r).toExponential(l.precision):parseFloat(r).toExponential();break;case"f":r=l.precision?parseFloat(r).toFixed(l.precision):parseFloat(r);break;case"g":r=l.precision?String(Number(r.toPrecision(l.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=l.precision?r.substring(0,l.precision):r;break;case"t":r=String(!!r),r=l.precision?r.substring(0,l.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=l.precision?r.substring(0,l.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=l.precision?r.substring(0,l.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}o.json.test(l.type)?p+=r:(!o.number.test(l.type)||f&&!l.sign?u="":(u=f?"+":"-",r=r.toString().replace(o.sign,"")),c=l.pad_char?"0"===l.pad_char?"0":l.pad_char.charAt(1):" ",d=l.width-(u+r).length,s=l.width&&d>0?c.repeat(d):"",p+=l.align?u+r+s:"0"===c?u+s+r:s+u+r)}return p}(function(e){if(l[e])return l[e];for(var t,r=e,n=[],i=0;r;){if(null!==(t=o.text.exec(r)))n.push(t[0]);else if(null!==(t=o.modulo.exec(r)))n.push("%");else{if(null===(t=o.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){i|=1;var a=[],s=t[2],c=[];if(null===(c=o.key.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(c[1]);""!==(s=s.substring(c[0].length));)if(null!==(c=o.key_access.exec(s)))a.push(c[1]);else{if(null===(c=o.index_access.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(c[1])}t[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}r=r.substring(t[0].length)}return l[e]=n}(e),arguments)}function a(e,t){return i.apply(null,[e].concat(t||[]))}var l=Object.create(null);"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(n=function(){return{sprintf:i,vsprintf:a}}.call(t,r,t,e))||(e.exports=n))}()},5397:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(1364),o={contextDelimiter:"",onMissingKey:null};function i(e,t){var r;for(r in this.data=e,this.pluralForms={},this.options={},o)this.options[r]=void 0!==t&&r in t?t[r]:o[r]}i.prototype.getPluralForm=function(e,t){var r,o,i,a=this.pluralForms[e];return a||("function"!=typeof(i=(r=this.data[e][""])["Plural-Forms"]||r["plural-forms"]||r.plural_forms)&&(o=function(e){var t,r,n;for(t=e.split(";"),r=0;r{"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}r.d(t,{A:()=>n})},4467:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(9922);function o(e,t,r){return(t=(0,n.A)(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},2327:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(2284);function o(e,t){if("object"!=(0,n.A)(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=(0,n.A)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}},9922:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(2284),o=r(2327);function i(e){var t=(0,o.A)(e,"string");return"symbol"==(0,n.A)(t)?t:t+""}},2284:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}r.d(t,{A:()=>n})}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}function n(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||a(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=a(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,l=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return l=e.done,e},e:function(e){s=!0,i=e},f:function(){try{l||null==r.return||r.return()}finally{if(s)throw i}}}}function a(e,t){if(e){if("string"==typeof e)return l(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?l(e,t):void 0}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},window.FrmFormsConnect=window.FrmFormsConnect||function(e,t,r){var n={messageBox:null,reset:null,setElements:function(){n.messageBox=e.querySelector(".frm_pro_license_msg"),n.reset=e.getElementById("frm_reconnect_link")}},o={init:function(){n.setElements(),r(e.getElementById("frm_deauthorize_link")).on("click",o.deauthorize),r(".frm_authorize_link").on("click",o.authorize),r(".frm-dashboard-license-options").on("click","#frm_deauthorize_link",o.deauthorize),r(".frm-dashboard-license-options").on("click","#frm_reconnect_link",o.reauthorize),null!==n.reset&&r(n.reset).on("click",o.reauthorize)},authorize:function(){var t=this,n=this.getAttribute("data-plugin"),i=e.getElementById("edd_".concat(n,"_license_key")),a=i.value,l=e.getElementById("proplug-wpmu");this.classList.add("frm_loading_button"),l=l&&l.checked?1:0,r.ajax({type:"POST",url:ajaxurl,dataType:"json",data:{action:"frm_addon_activate",license:a,plugin:n,wpmu:l,nonce:frmGlobal.nonce},success:function(e){o.afterAuthorize(e,i),t.classList.remove("frm_loading_button")}})},afterAuthorize:function(e,t){!0===e.success&&(t.value="•••••••••••••••••••"),wp.hooks.doAction("frm_after_authorize",e),o.showMessage(e)},showProgress:function(e){null===n.messageBox&&n.setElements();var t=n.messageBox;null!==t&&(!0===e.success?(t.classList.remove("frm_error_style"),t.classList.add("frm_message","frm_updated_message")):(t.classList.add("frm_error_style"),t.classList.remove("frm_message","frm_updated_message")),t.classList.remove("frm_hidden"),t.innerHTML=e.message)},showMessage:function(r){null===n.messageBox&&n.setElements();var i=n.messageBox;!0===r.success&&(o.showAuthorized(!0),o.showInlineSuccess(),wp.hooks.doAction("frmAdmin.afterLicenseAuthorizeSuccess",{msg:r})),o.showProgress(r),""!==r.message&&(setTimeout(function(){i.innerHTML="",i.classList.add("frm_hidden"),i.classList.remove("frm_error_style","frm_message","frm_updated_message")},1e4),e.querySelector(".frm-admin-page-dashboard")&&setTimeout(function(){t.location.reload()},1e3))},showAuthorized:function(t){var r=t?"unauthorized":"authorized",n=t?"authorized":"unauthorized",o=e.querySelectorAll(".frm_".concat(r,"_box"));o.length&&o.forEach(function(e){e.className=e.className.replace("frm_".concat(r,"_box"),"frm_".concat(n,"_box"))})},showInlineSuccess:function(){var t=e.querySelectorAll(".frm-confirm-msg [data-success]");t.length&&t.forEach(function(e){e.innerHTML=frmAdminBuild.purifyHtml(e.getAttribute("data-success"))})},reauthorize:function(){return this.innerHTML=' ',r.ajax({type:"POST",url:ajaxurl,dataType:"json",data:{action:"frm_reset_cache",plugin:"formidable_pro",nonce:frmGlobal.nonce},success:function(e){n.reset.textContent=e.message,"1"===n.reset.getAttribute("data-refresh")&&t.location.reload()}}),!1},deauthorize:function(){if(!confirm(frmGlobal.deauthorize))return!1;var t=this.getAttribute("data-plugin"),n=e.getElementById("edd_".concat(t,"_license_key")),i=n.value,a=this;return this.innerHTML=' ',r.ajax({type:"POST",url:ajaxurl,data:{action:"frm_addon_deactivate",license:i,plugin:t,nonce:frmGlobal.nonce},success:function(){o.showAuthorized(!1),n.value="",a.replaceWith("Disconnected"),wp.hooks.doAction("frmAdmin.afterLicenseDeauthorizeSuccess",{})}}),!1}};return o}(document,window,jQuery),window.frmAdminBuildJS=function(){var e,t,a=frm_admin_js,l=frmDom,s=l.tag,c=l.div,d=l.span,f=l.a,u=l.svg,m=l.img,_=frmDom.util.onClickPreventDefault,p=frmDom.ajax.doJsonPost;a.contextualShortcodes=(t=null===(e=document.getElementById("frm_adv_info"))||void 0===e?void 0:e.dataset.contextualShortcodes)?((t=JSON.parse(t)).addressSelector="[id^=email_to], [id^=from_], [id^=cc], [id^=bcc]",t.bodySelector="[id^=email_message_]",t):[];var g,y,v,h={save:u({href:"#frm_save_icon"}),drag:u({href:"#frm_drag_icon",classList:["frm_drag_icon","frm-drag"]})},b=jQuery(document.getElementById("frm-show-fields")),j=document.getElementById("new_fields"),w=document.getElementById("form_id"),Q=!1,x=0,k=0,E=0,A={},S=0,L=wp.i18n,I=L.__,q=L.sprintf,B={dragging:!1};w&&(k=w.value);var C,N=new URL(window.location.href),T=N.searchParams,O=document.getElementById("frm_builder_page");function F(e){e.stopPropagation(),e.preventDefault(),D(this)}function D(e){var t=e.getAttribute("data-frmverify"),r=e.getAttribute("data-loaded-from");return null===t||"frm-confirmed-click"===e.id||("entries-list"===r?wp.hooks.applyFilters("frm_on_multiple_entries_delete",{link:e,initModal:Ni}):function(e){var t=Ni("#frm_confirm_modal","400px"),r=document.getElementById("frm-confirmed-click");if(!1===t)return!1;r&&(r.style.display="block");var n=e.getAttribute("data-frmverify"),o=n?e.getAttribute("data-frmverify-btn"):"",i=jQuery(".frm-confirm-msg");i.empty(),n&&(i.append(document.createTextNode(n)),o&&(null==r||r.classList.add(o)));var a=e.dataset;if(r){for(var l in r.dataset)r.removeAttribute("data-".concat(l));for(var s in a)"frmverify"!==s&&r.setAttribute("data-".concat(s),a[s])}return wp.hooks.doAction("frmAdmin.beforeOpenConfirmModal",{$info:t,link:e}),t.dialog("open"),null==r||r.setAttribute("href",e.getAttribute("href")||e.getAttribute("data-href")),!1}(e))}function M(e,t){var r=Ni("#frm_info_modal",t||"400px");if(!1===r)return!1;"string"==typeof e&&(e={msg:e}),e=Object.assign({title:"",msg:I("Are you sure?","formidable"),img:"",closeText:I("Got it!","formidable"),actionUrl:"",actionText:"",noCenter:!1},e);var n=r[0].querySelector(".info-modal-title");n.textContent=e.title||"",n.classList.toggle("frm_hidden",!e.title),e.msg&&(r[0].querySelector(".frm-info-msg").innerHTML=pn(e.msg)),r[0].querySelector(".info-modal-img").src=e.img,r[0].querySelector(".info-modal-img-wrapper").classList.toggle("frm_hidden",!e.img);var o=document.getElementById("frm-info-click");e.closeText&&(o.textContent=e.closeText),o.classList.toggle("button-primary",!e.actionUrl),o.classList.toggle("frm-button-primary",!e.actionUrl),o.classList.toggle("button-secondary",Boolean(e.actionUrl)),o.classList.toggle("frm-button-secondary",Boolean(e.actionUrl));var i=r[0].querySelector(".info-modal-action-link");return e.actionUrl&&(i.href=e.actionUrl,e.actionText&&(i.textContent=e.actionText)),i.classList.toggle("frm_hidden",!e.actionUrl),r[0].querySelector(".info-modal-inside").classList.toggle("frmcenter",!e.noCenter),r[0].querySelector(".info-modal-buttons").classList.toggle("frmright",e.noCenter),r.dialog("open"),!1}function P(e){var t=this.getAttribute("data-frmtoggle"),r=this.getAttribute("data-toggletext"),n=jQuery(t);return e.preventDefault(),n.toggle(),null!==r&&""!==r&&(this.setAttribute("data-toggletext",this.innerHTML),this.textContent=r),!1}function H(e){var t=this.getAttribute("data-frmhide"),r=this.getAttribute("data-frmshow"),n=this.getAttribute("data-frmuncheck"),o=n?n.split(","):[];"INPUT"!==this.nodeName||"checkbox"!==this.type||this.checked||(null!==t?(r=t,t=null):null!==r&&(t=r,r=null)),e.preventDefault();var i=this.getAttribute("data-toggleclass")||"frm_hidden";null!==t&&jQuery(t).addClass(i),null!==r&&jQuery(r).removeClass(i);var a=this.parentNode.querySelectorAll("a.current");if(null!==a){for(var l=0;l1&&(e="",t=""):0===o.indexOf("frm_postmeta_")&&(jQuery("#frm_postmeta_rows .frm_postmeta_row").length<2&&(e=".frm_add_postmeta_row.button"),jQuery(".frm_toggle_cf_opts").length&&jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#".concat(o,")")).last().length&&(""!==e&&(e+=","),e+="#".concat(jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#".concat(o,")")).last().attr("id")," .frm_toggle_cf_opts")));var a=document.getElementById(o),l=jQuery(a);return l.fadeOut(300,function(){var r;l.remove(),Ro(),""!==t&&(jQuery(t).hide(),function(e){var t=document.querySelector(e);if(t){var r,n=i(t.classList);try{for(n.s();!(r=n.n()).done;){var o=r.value,a=document.querySelector('input[data-toggleclass="'.concat(o,'"]'));if(null!=a&&a.checked)return void(a.checked=!1)}}catch(e){n.e(e)}finally{n.f()}}}(t)),""!==e&&jQuery("".concat(e," a,").concat(e)).removeClass("frm_hidden").fadeIn("slow"),this.closest(".frm_form_action_settings")&&function(e){var t;co(e),document.querySelector(".frm_form_action_settings")||null===(t=document.querySelector(".frm-no-actions-message"))||void 0===t||t.classList.remove("frm_hidden");var r={type:e};wp.hooks.doAction("frm_after_action_removed",r)}(this.closest(".frm_form_action_settings").querySelector(".frm_action_name").value),null===(r=document.querySelector(".tooltip"))||void 0===r||r.remove()}),void 0!==r&&(r=jQuery(r)).fadeOut(400,function(){r.remove()}),""!==e&&jQuery(this).closest(".frm_logic_rows").fadeOut("slow"),wp.hooks.doAction("frm_admin_tag_removed",o,a),!1}}function G(){var e,t=document.querySelector("#frm-actions-filter-content .frm-action:not(.frm_hidden)");null===(e=document.getElementById("frm-actions-no-results"))||void 0===e||e.classList.toggle("frm_hidden",t)}function U(e,t){void 0===t&&(t=this),et(t,!1);var r=jQuery(t).closest(".frm_form_action_settings"),n=e.target;if(r.length&&void 0!==n){var o=n.parentElement.className;if("string"==typeof o&&(o.includes("frm_email_icons")||o.includes("frm_toggle")))return void e.stopPropagation()}var i=r.children(".widget-inside");if(r.length&&i.find("p, div, table").length<1){var a=r.find('input[name$="[ID]"]').val(),l=r.find('input[name$="[post_excerpt]"]').val();l&&(i.html(' '),r.find(".spinner").fadeIn("slow"),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_form_action_fill",action_id:a,action_type:l,nonce:frmGlobal.nonce},success:function(e){i.html(e),ui(),Yn("#".concat(r.attr("id"))),bi(i),jQuery(t).trigger("frm-action-loaded"),wp.hooks.doAction("frm_filled_form_action",i)}}))}jQuery(t).closest(".frm_field_box").siblings().find(".widget-inside").slideUp("fast"),void 0!==t.className&&t.className.includes("widget-action")||jQuery(t).closest(".start_divider").length<1||((i=jQuery(t).closest("div.widget").children(".widget-inside")).is(":hidden")?i.slideDown("fast"):i.slideUp("fast"))}function W(){var e=this.getAttribute("href");if(null===e)return!1;var t=e.replace("#","."),r=jQuery(this);r.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),r.closest("div").children(".tabs-panel").not(e).not(t).hide();var n=document.getElementById(e.replace("#",""));return n&&(n.style.display="block"),"frm_insert_fields_tab"!==this.id||this.closest("#frm_adv_info")||Ke(),!1}function $(e,t){var r=(e=jQuery(e)).attr("href");if(void 0!==r){var n,o,i=r.replace("#",".");if(e.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),e.closest("div").find(".tabs-panel").length)e.closest("div").children(".tabs-panel").not(r).not(i).hide();else if(null!==document.getElementById("form_global_settings")){var a=e.data("frmajax");e.closest(".frm_wrap").find(".tabs-panel, .hide_with_tabs").hide(),void 0!==a&&"1"==a&&(n=r.replace("#",""),(o=jQuery(".frm_".concat(n,"_ajax"))).length&&jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_settings_tab",tab:n.replace("_settings",""),nonce:frmGlobal.nonce},success:function(e){o.replaceWith(e)}}))}else jQuery("#frm-categorydiv .tabs-panel, .hide_with_tabs").hide();jQuery(r).show(),jQuery(i).show(),Xo(),"auto"!==t&&(jQuery(".frm_updated_message").hide(),jQuery(".frm_warning_style").hide()),jQuery(e).closest("#frm_adv_info").length||(jQuery(".frm_form_settings").length?jQuery(".frm_form_settings").attr("action","?page=formidable&frm_action=settings&id=".concat(jQuery('.frm_form_settings input[name="id"]').val(),"&t=").concat(r.replace("#",""))):jQuery(".frm_settings_form").attr("action","?page=formidable-settings&t=".concat(r.replace("#",""))))}}function V(e){var t,r;document.querySelectorAll(e).forEach(function(e){K(e),Array.from(e.children).forEach(function(e){return Y(e,".frm-move")});var t=jQuery(e).children('[data-type="divider"]').children(".divider_section_only");t.length&&K(t)}),t=jQuery("#frm_builder_page"),r={items:".frm_sortable_field_opts li",axis:"y",opacity:.65,forcePlaceholderSize:!1,handle:".frm-drag",helper:function(e,t){return Q=t.clone().insertAfter(t),t.clone()},stop:function(e,t){Q&&Q.remove(),an(t.item.attr("id").replace("frm_delete_field_","").replace("-".concat(t.item.data("optkey"),"_container"),"")),Ro()}},jQuery(t).sortable(r)}function K(e){jQuery(e).droppable({accept:".frmbutton, li.frm_field_box",deactivate:ne,over:J,out:X,tolerance:"pointer"})}function J(e,t){var r=function(e){return e.classList.contains("divider_section_only")&&(e=jQuery(e).nextAll(".start_divider.frm_sorting").get(0)),e}(e.target);if(!we(t.draggable[0],r,e))return r.classList.remove("frm-over-droppable"),void jQuery(r).parents("ul.frm_sorting").addClass("frm-over-droppable");document.querySelectorAll(".frm-over-droppable").forEach(function(e){return e.classList.remove("frm-over-droppable")}),r.classList.add("frm-over-droppable"),jQuery(r).parents("ul.frm_sorting").addClass("frm-over-droppable")}function X(e){e.target.classList.remove("frm-over-droppable")}function Y(e,t){var r={helper:Z,revert:"invalid",delay:10,start:ee,stop:te,drag:re,cursor:"grabbing",refreshPositions:!0,cursorAt:{top:0,left:90}};"string"==typeof t&&(r.handle=t),jQuery(e).draggable(r)}function Z(e){var t,r=e.delegateTarget;if(xe(r)){var n=document.getElementById("frm-insert-fields").querySelector(".frm_ttext").cloneNode(!0);return n.querySelector("use").setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_field_group_layout_icon"),n.querySelector("span").textContent=I("Field Group","formidable"),n.classList.add("frm_field_box"),n.classList.add("ui-sortable-helper"),n}if(r.classList.contains("frmbutton"))return(t=r.cloneNode(!0)).classList.add("ui-sortable-helper"),r.classList.add("frm-new-field"),t;if(r.hasAttribute("data-ftype")){var o=r.getAttribute("data-ftype");if(t=document.getElementById("frm-insert-fields").querySelector(".frm_t".concat(o)))return(t=t.cloneNode(!0)).classList.add("form-field"),t.classList.add("ui-sortable-helper"),t.cloneNode(!0)}return c({className:"frmbutton"})}function ee(e,t){if(e.target.classList.contains("frm_at_limit"))return Le(),!1;B.dragging=!0;var r,n=y;n.classList.add("frm-dragging-field"),document.body.classList.add("frm-dragging"),t.helper.addClass("frm-sortable-helper"),t.helper.initialOffset=n.scrollTop,e.target.classList.add("frm-drag-fade"),vr(),(r=document.querySelectorAll("ul.start_divider")).length&&r.forEach(function(e){[].slice.call(e.children).forEach(function(e){(0===e.children.length||1===e.children.length&&"ul"===e.firstElementChild.nodeName.toLowerCase()&&0===e.firstElementChild.children.length)&&e.remove()})}),De(),Te(),z()}function te(){y.classList.remove("frm-dragging-field"),document.body.classList.remove("frm-dragging");var e=document.querySelector(".frm-drag-fade");e&&e.classList.remove("frm-drag-fade")}function re(e,t){!function(e){v.scrollTop(function(t,r){var n=e.clientY,o=y.offsetHeight,i=e.clientY-y.offsetTop,a=i-o/2;return i>o-50&&n>5?r+.1*a:i<70&&n<130?r-Math.abs(.1*a):r})}(e);var r=e.target,n=function(){for(var e=document.getElementById("frm-show-fields");e.querySelector(".frm-over-droppable");)e=e.querySelector(".frm-over-droppable");return"frm-show-fields"!==e.id||e.classList.contains("frm-over-droppable")||(e=!1),e}(),o=document.getElementById("frm_drag_placeholder");if(we(r,n,e)){o||(o=s("li",{id:"frm_drag_placeholder",className:"sortable-placeholder"}));var i,a=t.helper.get(0);if((a.classList.contains("form-field")||a.classList.contains("frm_field_box"))&&(a.style.transform="translateY(".concat((i=t.helper,y.scrollTop-i.initialOffset),"px)")),"frm-show-fields"===n.id||n.classList.contains("start_divider"))return o.style.left=0,void function(e){var t,r=e.y,n=e.placeholder,o=jQuery(e.droppable),i=o.children().not(".edit_field_type_end_divider");if(0===i.length)o.prepend(n),t=0;else{var a=oe(o,r);if(a===i.length){var l=jQuery(i.get(a-1));t=l.offset().top+l.outerHeight(),o.append(n);var s=o.children(".edit_field_type_end_divider");s.length&&o.append(s)}else t=jQuery(i.get(a)).offset().top,jQuery(i.get(a)).before(n)}t-=o.offset().top,n.style.top="".concat(t,"px")}({droppable:n,y:e.clientY,placeholder:o});o.style.top="",function(e){var t,r=e.x,n=e.placeholder,o=jQuery(e.droppable),i=ae(o);if(i.length){var a=function(e,t){var r,n,o,i,a=ae(e);for(i=0,r=a.length-1;r>=0;--r)if(n=a.get(r),t>(o=jQuery(n).offset().left)){i=r,t>o+jQuery(n).outerWidth()/2&&(i=r+1);break}return i}(o,r);if(a===i.length){var l=jQuery(i.get(a-1));t=l.offset().left+l.outerWidth(),o.append(n)}else t=jQuery(i.get(a)).offset().left,jQuery(i.get(a)).before(n),t-=0===a?4:8;t-=o.offset().left,n.style.left="".concat(t,"px")}}({droppable:n,x:e.clientX,placeholder:o})}else o&&o.remove()}function ne(e,t){if(B.dragging){B.dragging=!1;var r=t.draggable[0],n=document.getElementById("frm_drag_placeholder");if(!n)return t.helper.remove(),void g();!function(e){if(e.previousElementSibling&&e.previousElementSibling.classList.contains("frm-is-collapsed")){var t=jQuery(e).prevUntil('[data-type="break"]');if(t.length){var r=t.find(".frm-collapse-page").get(0);r&&r.click()}}}(n);var o=t.helper.parent(),i=t.helper.get(0).closest("ul.start_divider"),a=n.closest("ul.start_divider");r.classList.contains("frm-new-field")?function(e){if(ge(e))wp.hooks.doAction("frm_stopped_inserting_by_dragging",e);else{var t=document.getElementById("frm_drag_placeholder"),r="".concat(e.replace("|","-"),"_").concat(je()),n=s("li",{id:r,className:"frm-wait frmbutton_loadingnow"}),o=jQuery(n),i=fe(jQuery(t)),a=ue(i),l=me(i);t.parentNode.insertBefore(n,t),t.remove(),le(o);var c=0;"summary"===e&&(c=jQuery(".frmbutton_loadingnow#".concat(r)).prevAll('li[data-type="break"]').length?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:pe(e,l,a,c),success:function(t){ye(t,o);var r=ve(t);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:r,fieldType:e,form_id:a})},error:be})}}(r.id):(function(e,t){t.parentNode.insertBefore(e,t)}(r,n),function(e){if("UL"===e.nodeName&&!e.classList.contains("start_divider")&&"frm-show-fields"!==e.id){var t=e.closest("li");t&&!t.classList.contains("ui-draggable")&&Y(t,".frm-move")}}(n.parentElement));var l=i?parseInt(i.closest(".edit_field_type_divider").getAttribute("data-fid")):0,c=a?parseInt(a.closest(".edit_field_type_divider").getAttribute("data-fid")):0;n.remove(),t.helper.remove();var d=o.length?ae(o):[];!function(e,t){var r;e.length&&(t.length?le(t.first()):(r=e.get(0).closest("li.frm_field_box"))&&!r.classList.contains("edit_field_type_divider")&&r.remove())}(o,d),function(e,t){0===t.length&&1===ae(jQuery(e.parentNode)).length||le(jQuery(e))}(r,d),l!==c&&_e(jQuery(r),i),g()}}function oe(e,t){var r,n,o,i,a=e.children().not(".edit_field_type_end_divider"),l=a.length;if(!document.querySelector(".frm-has-fields .frm_no_fields"))return 0;for(i=0,r=l-1;r>=0;--r)if(n=a.get(r),t>(o=jQuery(n).offset().top)){i=r,t>o+jQuery(n).outerHeight()/2&&(i=r+1);break}return i}function ie(){document.querySelectorAll("ul#frm-show-fields, ul.start_divider").forEach(function(e){e.childNodes.forEach(function(e){void 0!==e.classList&&(e.classList.contains("edit_field_type_end_divider")||void 0!==e.classList&&e.classList.contains("form-field")&&We(e))})}),An(),document.querySelectorAll(".edit_field_type_end_divider").forEach(function(e){return e.parentNode.append(e)}),document.querySelectorAll("li.form_field_box:not(.form-field)").forEach(function(e){return!e.children.length&&e.remove()}),En();var e=new Event("frm_sync_after_drag_and_drop",{bubbles:!1});document.dispatchEvent(e)}function ae(e){var t=jQuery(),r=e.get(0);return r.children?(Array.from(r.children).forEach(function(e){if("none"!==e.style.display){var r=e.classList;!r.contains("form-field")||r.contains("edit_field_type_end_divider")||r.contains("frm-sortable-helper")||(t=t.add(e))}}),t):t}function le(e,t){var r;void 0===t&&(t="even");var n=e.parent().children("li.form-field, li.frmbutton_loadingnow").not(".edit_field_type_end_divider"),o=n.length,i=["frm_full","frm_half","frm_third","frm_fourth","frm_sixth","frm_two_thirds","frm_three_fourths","frm1","frm2","frm3","frm4","frm5","frm6","frm7","frm8","frm9","frm10","frm11","frm12"];"even"===t&&5!==o?n.each(de(i,Kt(o))):"clear"===t?n.each(de(i,"")):(r=["left","right","middle","even"].includes(t)?function(e){return Vt(o,t,e)}:function(e){return sr(t[e])},n.each(de(i,r))),se(e.parent(),n.length)}function se(e,t){if(void 0!==e.offset()){var r=t>=2,n=document.getElementById("frm_field_group_controls");if(!n){if(!r)return;(n=c()).id="frm_field_group_controls",n.setAttribute("role","group"),n.setAttribute("tabindex",0),function(e){var t=document.createElement("span");t.innerHTML=' ';var r=I("Set Row Layout","formidable");ce(t,r),Rt(t,r);var n=document.createElement("span");n.innerHTML=' ',n.classList.add("frm-move");var o=I("Move Field Group","formidable");ce(n,o),Rt(n,o),e.innerHTML="",e.append(t),e.append(n),e.append(function(){var e=d({className:"dropdown"}),t=f({className:"frm_bstooltip frm-hover-icon frm-dropdown-toggle dropdown-toggle",children:[d({child:u({href:"#frm_thick_more_vert_icon"})}),d({className:"screen-reader-text",text:I("Toggle More Options Dropdown","formidable")})]});frmDom.setAttributes(t,{title:I("More Options","formidable"),"data-bs-toggle":"dropdown","data-bs-container":"body","data-bs-display":"static"}),Rt(t,I("More Options","formidable")),e.append(t);var r=c({className:"frm-dropdown-menu dropdown-menu dropdown-menu-right"});return r.setAttribute("role","menu"),e.append(r),e}())}(n),O.append(n)}e.append(n),n.style.display=r?"block":"none"}}function ce(e,t){e.setAttribute("data-bs-toggle","tooltip"),e.setAttribute("data-bs-container","body"),e.setAttribute("title",t),e.addEventListener("mouseover",function(){null===e.getAttribute("data-original-title")&&jQuery(e).tooltip()})}function de(e,t){return function(r){for(var n="function"==typeof t?t(r):t,o=e.length,i=!1,a=0;a0&&document.getElementById("form_id").value!==r||(o.last_row_field_ids=function(){var e=document.querySelector(".edit_field_type_submit");if(!e)return[];for(var t=e.parentNode.children,r=[],n=0;nt.childElementCount-1:i<=jQuery(t.querySelector(".edit_field_type_submit").closest("#frm-show-fields > li")).index()}if(n)return!(t.classList.contains("start_divider")||!Qe(t.parentElement)&&(!Qe(t.parentElement.nextElementSibling)||e.parentElement.querySelector("li.frm_field_box:not(.edit_field_type_submit)")));var a=t.classList.contains("start_divider")&&null!==t.closest(".repeat_section"),l=null!==t.closest(".repeat_section");if(a||l){if(e.classList.contains("edit_field_type_gdpr")||"gdpr"===e.id)return!1;if(wp.hooks.applyFilters("frm_deny_drop_in_repeater",!1,e))return!1}if(!a){if(!function(e,t){if(e.length<12)return!0;if(e.length>12)return!1;var r=t.attr("data-fid");return 1===jQuery(e).filter('[data-fid="'.concat(r,'"]')).length}(ae(jQuery(t)),jQuery(e)))return!1;if("divider"===e.id&&t.closest(".start_divider"))return!1}return e.classList.contains("frm-new-field")?function(e,t){var r=e.classList,n=r.contains("frm_tbreak"),o=r.contains("frm_thidden"),i=r.contains("frm_tdivider"),a=r.contains("frm_tform"),l=r.contains("frm_tuser_id");return"frm-show-fields"===t.id||t.classList.contains("start_divider")?!(n||o||i||a)||(!(t.classList.contains("start_divider")||null!==t.closest(".start_divider"))||!a&&!i):!(ke(t)||o||n||l)}(e,t):function(e,t){if(xe(e))return function(e,t){return!(!t.classList.contains("start_divider")||null!==e.querySelector(".start_divider"))}(e,t);if(e.classList.contains("edit_field_type_break"))return!1;if(t.classList.contains("start_divider"))return function(e){return!e.classList.contains("edit_field_type_form")&&!e.querySelector(".edit_field_type_form")&&!(e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"))}(e);var r=e.classList.contains("edit_field_type_hidden"),n=e.classList.contains("edit_field_type_user_id");return!r&&!n&&function(e,t){if(ke(t))return!1;if(jQuery(e).children("ul.frm_sorting").not(".start_divider").length>0)return!1;var r=e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"),n=e.classList.contains("edit_field_type_form");return!(null!==t.closest(".start_divider")&&(r||n))}(e,t)}(e,t)}function Qe(e){return null==e?void 0:e.matches("#frm-show-fields > li:last-child")}function xe(e){return e.classList.contains("frm_field_box")&&!e.classList.contains("form-field")}function ke(e){return null!==e.querySelector(".edit_field_type_break, .edit_field_type_hidden, .edit_field_type_user_id")}function Ee(e){var t=document.getElementById(e),r=jQuery(t),n=[],o=function(e){var t=e.querySelector(".frm_hidden_fdata");e.classList.add("frm_load_now"),null!==t&&n.push(t.innerHTML)};o(t);for(var i=Ae(t);i&&n.length<15;)o(i),i=Ae(i);jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_load_field",field:n,form_id:k,nonce:frmGlobal.nonce},success:function(e){return function(e,t,r){var n,o;if(0===(e=e.replace(/^\s+|\s+$/g,"")).indexOf("{")){for(n in e=JSON.parse(e))if(Object.hasOwn(e,n)){jQuery("#frm_field_id_".concat(n)).replaceWith(e[n]);var i=document.getElementById("frm_field_id_".concat(n));i&&(i.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))}),i.querySelectorAll(".frm-dropdown-menu").forEach(function(e){return e.classList.add("dropdown-menu")})),V("#frm_field_id_".concat(n,".edit_field_type_divider ul.frm_sorting")),Y(document.getElementById("frm_field_id_".concat(n)))}((o=t.nextAll(".frm_field_loading:not(.frm_load_now)")).length||(o=jQuery(document.getElementById("frm-show-fields")).find(".frm_field_loading:not(.frm_load_now)")).length)&&Ee(o.attr("id")),ui(),Dr(),qe();var a=new Event("frm_ajax_loaded_field",{bubbles:!1});a.frmFields=r.map(function(e){return JSON.parse(e)}),document.dispatchEvent(a)}else jQuery(".frm_load_now").removeClass(".frm_load_now").html("Error")}(e,r,n)}})}function Ae(e){var t;return e.nextElementSibling?e.nextElementSibling:null===(t=e.parentNode)||void 0===t||null===(t=t.closest(".frm_field_box"))||void 0===t||null===(t=t.nextElementSibling)||void 0===t?void 0:t.querySelector(".form-field")}function Se(){var e=jQuery(this);if(e.hasClass("disabled"))return!1;var t=e.closest(".frmbutton"),r=t.attr("id");if(t.hasClass("frm_at_limit"))return Le(),!1;if(frm_admin_js.paymentsSettingsModal&&"object"===o(frm_admin_js.paymentsSettingsModal)&&["product","quantity","total"].includes(r))return M(frm_admin_js.paymentsSettingsModal),!1;if(!ge(r)){var n=0;"summary"===r&&(n=b.children('li[data-type="break"]').length>0?1:0);var i=k;return jQuery.ajax({type:"POST",url:ajaxurl,data:pe(r,0,i,n),success:function(e){Ie(e);var t=ve(e);t&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:e,fieldId:t,fieldType:r,form_id:i})},error:be}),!1}}function Le(){var e=document.querySelector(".frm_wrap");if(e){var t=document.createElement("a");t.setAttribute("data-frmverify",I("This field type has reached its limit.","formidable")),e.append(t),t.click(),t.remove();var r=document.getElementById("frm-confirmed-click");r&&(r.style.display="none")}}function Ie(e){document.getElementById("frm_form_editor_container").classList.add("frm-has-fields");var t=Ue(e),r=b[0].querySelector(".edit_field_type_submit");r?jQuery(r.closest(".frm_field_box:not(.form-field)")).before(t):b.append(t),$e(e,!0),t.each(function(){K(this.querySelector("ul.frm_sorting")),Y(this.querySelector(".form-field"),".frm-move")})}function qe(){var e=!0,t=document.querySelectorAll(".frmjs_prod_field_opt_cont");b.find("li.edit_field_type_product").length>1&&(e=!1);for(var r=0;r '),o.append(document.createTextNode(" ")),o.append(i),n.append(o),e.append(n)})}(t,!0===e);var r=jQuery(t);r.offset().left>jQuery(window).width()-r.outerWidth()?t.style.left="".concat(-r.outerWidth(),"px"):y&&r.offset().left").addClass("frm_field_box").html(jQuery("").addClass("frm_grid_container frm_sorting").append(e)))}),r}function We(e){var t=s("ul",{className:"frm_grid_container frm_sorting"}),r=s("li",{className:"frm_field_box",child:t});e.replaceWith(r),t.append(e),K(t),Y(r,".frm-move")}function $e(e,t){var r,n,i=/id="(\S+)"/.exec(e),a=document.getElementById(i[1]),l="#".concat(i[1],".edit_field_type_divider ul.frm_sorting.start_divider"),s=jQuery(l),d=a.getAttribute("data-type");r=e,(n=c()).innerHTML=r,n.querySelectorAll(".form-field").forEach(Ve);var f,u,m=!1;if(Ro(),V(l),"quantity"===d&&function(e){var t=e.getAttribute("data-fid"),r=document.getElementById("field_options[product_field_".concat(t,"]"));r&&(nt(r),io(document.getElementById("frm-single-settings-".concat(t))))}(a),"product"!==d&&"quantity"!==d||qe(),s.length)s.parent(".frm_field_box").children(".frm_no_section_fields").addClass("frm_block");else{var _=jQuery(a).closest("ul.frm_sorting.start_divider");_.length&&(Sn(_),m=!0)}e.includes("frm-collapse-page")&&Dr(),u="frm-newly-added",(f=a).classList?f.classList.add(u):f.className+=" ".concat(u),setTimeout(function(){a.classList.remove("frm-newly-added")},1e3);var p,g=a.querySelector("#frm-last-row-fields-order");if(g&&((p=JSON.parse(g.value))&&"object"===o(p)&&Object.keys(p).forEach(function(e){var t=document.querySelector('input[name="field_options[field_order_'.concat(e,']"]'));t&&(t.value=p[e])})),t){var y=a.getBoundingClientRect(),v=document.getElementById("post-body-content");y.top>=0&&y.left>=0&&y.right<=(window.innerWidth||document.documentElement.clientWidth)&&y.bottom<=(window.innerHeight||document.documentElement.clientHeight)||v.scroll({top:v.scrollHeight,left:0,behavior:"smooth"}),!1===m&&Sn(s)}Je(),ui(),document.getElementById("frm-show-fields").classList.remove("frm-over-droppable"),function(e){var t=document.getElementById(e);null!=t&&t.dataset.limit&&Ar(e)>=t.dataset.limit&&t.classList.add("frm_at_limit")}(d),a.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))}),a.querySelectorAll(".frm-dropdown-menu").forEach(function(e){return e.classList.add("dropdown-menu")});var h=new Event("frm_added_field",{bubbles:!1});h.frmField=a,h.frmSection=l,h.frmType=d,h.frmToggles=m,document.dispatchEvent(h)}function Ve(e){if(e.dataset.fid){var t=document.getElementById("draft_fields");t&&(""===t.value?t.value=e.dataset.fid:t.value.split(",").includes(e.dataset.fid)||(t.value+=",".concat(e.dataset.fid)))}}function Ke(e){jQuery("#new_fields .frm-single-settings").addClass("frm_hidden"),jQuery("#frm-options-panel > .frm-single-settings").removeClass("frm_hidden"),Je(e)}function Je(e){jQuery("li.ui-state-default.selected").removeClass("selected"),jQuery(".frm-show-field-settings.selected").removeClass("selected"),e||vr()}function Xe(){var e=this.value,t=function(e){var t,r=[],n=e.split(""),o=n.length,i=["{","[","("],l={"}":"{",")":"(","]":"["},s=!1;for(t=0;t0||s?"".concat(a.unmatched_parens,"\n\n"):""}(e);t+=function(e,t){var r=function(e,t){var r="";return function(e){return jQuery(e).siblings('label[for^="calc_type"]').children("input").prop("checked")}(t)||/\[(date|time|email|ip)\]/.test(e)&&(r="".concat(a.text_shortcodes,"\n\n")),r}(e,t);return r+=function(e){var t="";return/\[id\]|\[key\]|\[if\s\w+\]|\[foreach\s\w+\]|\[created-at(\s*)?/g.test(e)&&(t+="".concat(a.view_shortcodes,"\n\n")),t}(e)}(e,this),""!==t&&M("".concat(e,"\n\n").concat(t))}function Ye(e,t){for(var r=!1,n=0;n").concat(l[t].fieldName,""))):(r=r?" checked":"",o.push(''),o.push(' ").concat(l[t].fieldName)),o.push(" "));e.innerHTML=o.join("")}function ot(){for(var e=document.querySelectorAll(".frmjs_prod_field_opt"),t=0;t '):(d.innerHTML=pn(c),"TEXTAREA"===d.nodeName&&d.classList.contains("wp-editor-area")&&jQuery(d).trigger("change"),d.classList.contains("frm_primary_label")&&"break"===d.nextElementSibling.getAttribute("data-ftype")&&(d.nextElementSibling.querySelector(".frm_button_submit").textContent=c)))}function lt(e){var t=parseFloat(e.getAttribute("max")),r=parseFloat(e.getAttribute("min"));return(t-r)/2+r}function st(){var e=this.getAttribute("data-fid"),t="";["field_options_max_","frm_format_"].forEach(function(r){var n=document.getElementById(r+e);n&&(t+=n.value)});var r=document.getElementsByName("field_options[type_".concat(e,"]"))[0];"text"===r.options[r.selectedIndex].value&&dt(""!==t,".frm_invalid_msg".concat(e))}function ct(){var e=this.id.replace("frm_","").replace("req_field_",""),t=this.checked,r=jQuery("#field_label_".concat(e," .frm_required"));if(dt(t,".frm_required_details".concat(e)),t){var n=jQuery('input[name="field_options[required_indicator_'.concat(e,']"]'));""===n.val()&&n.val("*"),r.removeClass("frm_hidden")}else r.addClass("frm_hidden")}function dt(e,t){var r=jQuery(t);if(e)r.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast");else{var n=r.fadeOut("fast").closest(".frm_validation_box"),o=n.css("display","block").children(":not(".concat(t,"):visible")).length;n.css("display",""),0===o&&r.closest(".frm_validation_msg").fadeOut("fast")}}function ft(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(".frm_unique_details".concat(e));if(this.checked){t.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast");var r=jQuery(".frm_unique_details".concat(e," input"));""===r.val()&&r.val(a.default_unique)}else{var n=t.fadeOut("fast").closest(".frm_validation_box"),o=n.css("display","block").children(":not(.frm_unique_details".concat(e,"):visible")).length;n.css("display",""),0===o&&t.closest(".frm_validation_msg").fadeOut("fast")}}function ut(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(this).val(),r=jQuery(document.getElementById("frm_field_id_".concat(e)));if(dt(""!==t,".frm_conf_details".concat(e)),""!==t){var n=jQuery(".frm_validation_box .frm_conf_details".concat(e," input"));""===n.val()&&n.val(a.default_conf),function(e){var t=document.getElementsByName("field_options[type_".concat(e,"]"))[0].value;mt(document.getElementById("field_description_".concat(e)),"field_options[description_".concat(e,"]"),a["enter_".concat(t)]),mt(document.getElementById("conf_field_description_".concat(e)),"field_options[conf_desc_".concat(e,"]"),a["confirm_".concat(t)])}(e),"inline"===t?r.removeClass("frm_conf_below").addClass("frm_conf_inline"):"below"===t&&r.removeClass("frm_conf_inline").addClass("frm_conf_below"),jQuery(".frm-conf-box-".concat(e)).removeClass("frm_hidden")}else jQuery(".frm-conf-box-".concat(e)).addClass("frm_hidden"),setTimeout(function(){r.removeClass("frm_conf_inline frm_conf_below")},200)}function mt(e,t,r){e.innerHTML===a.desc&&(e.innerHTML=r,document.getElementsByName(t)[0].value=r)}function _t(e){var t=JSON.parse(this.getAttribute("data-opts"));return e.preventDefault(),document.getElementById("frm_bulk_options").value=t.join("\n"),!1}function pt(){var e,t,r,n=jQuery(this).closest(".frm-single-settings").data("fid"),o=jQuery("#frm_field_".concat(n,"_opts .frm_option_template")).prop("outerHTML"),i=jQuery(this).data("opttype"),a=0,l="000",s=function(e){for(var t=0,r=0,n=jQuery("#frm_field_".concat(e,"_opts li")),o=0;to||"000"===o)&&(o=r)}return o}(n);if(s!==l&&(a=s+1),"other"===i){document.getElementById("other_input_".concat(n)).value=1;var c=jQuery(this).data("ftype");"radio"!==c&&"select"!==c||jQuery(this).fadeOut("slow");var d={action:"frm_add_field_option",field_id:n,opt_key:a,opt_type:i,nonce:frmGlobal.nonce};jQuery.post(ajaxurl,d,function(e){jQuery(document.getElementById("frm_field_".concat(n,"_opts"))).append(e),an(n)})}else{o=(o=(o=(o=(o=o.replace(new RegExp('optkey="'.concat(l,'"'),"g"),'optkey="'.concat(a,'"'))).replace(new RegExp("-".concat(l,"_"),"g"),"-".concat(a,"_"))).replace(new RegExp("-".concat(l,'"'),"g"),"-".concat(a,'"'))).replace(new RegExp("\\[".concat(l,"\\]"),"g"),"[".concat(a,"]"))).replace("frm_hidden frm_option_template",""),zi(n,o={newOption:o});var f=this.closest(".frm_single_option");f?f.after(o.newOption):jQuery("#frm_field_".concat(n,"_opts")).append(o.newOption),an(n)}null==(r=(e=this).classList.contains("frm-add-option-legacy")?null===(t=e.closest(".frm-collapse-me"))||void 0===t?void 0:t.querySelector(".frm_sortable_field_opts"):e.closest(".frm_sortable_field_opts"))||r.querySelectorAll(".frm_remove_tag.frm_disabled").forEach(function(e){return e.classList.remove("frm_disabled")}),Ro()}function gt(){yt(jQuery(this).closest(".frm-single-settings").data("fid"),this.value)}function yt(e,t){var r=jQuery(".frm_multiple_cont_".concat(e));"select"===t?r.fadeIn("fast"):r.fadeOut("fast")}function vt(){var e=jQuery(this).closest(".frm-single-settings").data("fid");Ti(jQuery(".field_".concat(e,"_option_key")),"",this.checked),jQuery(".field_".concat(e,"_option")).toggleClass("frm_with_key")}function ht(){var e=jQuery(this).closest(".frm-single-settings"),t=e.data("fid"),r=document.getElementById("frm_field_id_".concat(t));Qt(jQuery(this));var n=hn(t);if(Ti(jQuery(".field_".concat(t,"_image_id")),"",n),Ti(jQuery(".frm_toggle_image_options_".concat(t)),"",n),Ti(jQuery(".frm_image_size_".concat(t)),"",n),Ti(jQuery(".frm_alignment_".concat(t)),"",n),Ti(jQuery(".frm-add-other#frm_add_field_".concat(t)),"",n),bt(r),n){jt(t,"inline");var o=on(t);r.classList.add("frm_image_options"),r.classList.add("frm_image_size_".concat(o)),e.find(".frm-bulk-edit-link").hide()}else r.classList.remove("frm_image_options"),jt(t,"block"),e.find(".frm-bulk-edit-link").show();wp.hooks.doAction("frm_image_options_toggled",e[0],n)}function bt(e){e.classList.remove("frm_image_size_","frm_image_size_small","frm_image_size_medium","frm_image_size_large","frm_image_size_xlarge")}function jt(e,t){jQuery("#field_options_align_".concat(e)).val(t).trigger("change")}function wt(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_".concat(e));xt(),hn(e)&&(bt(t),t.classList.add("frm_image_options"),t.classList.add("frm_image_size_".concat(on(e))))}function Qt(e){var t=e.closest(".frm-single-settings").data("fid");jQuery(".field_".concat(t,"_option")).trigger("change")}function xt(){Qt(jQuery(this))}function kt(e){var t,r=e.target.closest(".frm_image_preview_wrapper");if(null!==(t=wp)&&void 0!==t&&t.media&&(null==r||!r.dataset.upgrade)){e.preventDefault(),wp.media.model.settings.post.id=0;var n=wp.media.frames.file_frame=wp.media({multiple:!1,library:{type:["image"]}});n.on("select",function(){var e=n.state().get("selection").first().toJSON(),t=r.querySelector("img");t.setAttribute("src",e.url),t.classList.remove("frm_hidden"),t.removeAttribute("srcset"),r.querySelector(".frm_image_preview_frame").style.display="block",r.querySelector(".frm_image_preview_title").textContent=e.filename,r.querySelector(".frm_choose_image_box").style.display="none";var o=jQuery(r);o.siblings('input[name*="[label]"]').data("frmimgurl",e.url),o.find("input.frm_image_id").val(e.id).trigger("change"),wp.media.model.settings.post.id=0}),n.open()}}function Et(e){var t=jQuery(this).closest(".frm_image_preview_wrapper");e.preventDefault(),e.stopPropagation(),t.find("img").attr("src",""),t.find(".frm_image_preview_frame").hide(),t.find(".frm_choose_image_box").show(),t.find("input.frm_image_id").val(0).trigger("change")}function At(){var e=jQuery(this).closest("li").find(".frm_form_fields select");this.checked?e.attr("multiple","multiple"):e.removeAttr("multiple")}function St(){var e=document.getElementById("dropform-search-input");e&&setTimeout(function(){e.focus()},100)}function Lt(e){var t=e.target,r=t.closest(".frm_warning_style");jQuery(r).fadeOut(400,function(){return r.remove()});var n=t.dataset.action,o=new FormData;p(n,o)}function It(e){e.preventDefault()}function qt(){var e,t,r=this.parentNode,n=r.parentNode,o=n.querySelectorAll("li:not(.frm_hidden)");2===o.length&&(null===(e=Array.from(o).find(function(e){return e!==r}).querySelector(".frm_remove_tag"))||void 0===e||e.classList.add("frm_disabled"));var i=this.getAttribute("data-fid");jQuery(r).fadeOut("fast",function(){wp.hooks.doAction("frm_before_delete_field_option",this),jQuery(r).remove(),jQuery(n).find(".frm_other_option").length<1&&((t=document.getElementById("other_input_".concat(i)))&&(t.value=0),jQuery("#other_button_".concat(i)).fadeIn("fast"))}),Ro()}function Bt(){var e=jQuery(this);if(e.is(":checked")){var t,r=function(){e.off("mouseup",t)};t=function(){setTimeout(function(){e.prop("checked",!1)},0),r()},e.on("mouseup",t),e.one("mouseout",r)}}function Ct(){this.value===a.new_option&&(this.setAttribute("data-value-on-focus",this.value),this.value="")}function Nt(e){return q(I("Are you sure you want to delete these %1$s selected field(s)?","formidable"),e)}function Tt(){var e=a.conf_delete,t=this.parentNode.parentNode.parentNode.parentNode.parentNode,r=t.parentNode,n=jQuery(this).closest("li.form-field"),o=n.data("fid");if("divider"===n.data("ftype")){var i=document.querySelectorAll(".frm-field-group-hover-target .start_divider .frm_field_box"),l=0;i.forEach(function(e){var t=e.querySelectorAll("li.form-field");t&&(l+=t.length)}),l&&(e=Nt(++l))}return r.classList.contains("frm-section-collapsed")||r.classList.contains("frm-page-collapsed")||("divider_section_only"===t.className&&(e=a.conf_delete_sec),this.setAttribute("data-frmverify",e),this.setAttribute("data-frmverify-btn","frm-button-red"),this.setAttribute("data-deletefield",o),Te(),D(this)),!1}function Ot(){this.closest("li.form-field").click()}function Ft(){var e=document.querySelector(".frm-field-group-hover-target");if(e){e.classList.add("frm-selected-field-group");var t=document.createElement("div");t.classList.add("frm-delete-field-groups","frm_hidden"),document.body.append(t),t.click()}}function Dt(){var e=document.querySelector(".frm-field-group-hover-target");if(e){var t="frm_field_group_".concat(je()),r=document.createTextNode("");We(r);var n=jQuery(r).closest("li").get(0);n.classList.add("frm_hidden");var o=n.querySelector("ul");o.id=t,jQuery(e.closest("li.frm_field_box")).after(n);var i=ae(jQuery(e)),a=[],l=[],s=i.length,c={},d=0;jQuery(n).on("frm_added_duplicated_field_to_row",function(e,t){if(c[jQuery(t.duplicatedFieldHtml).attr("data-fid")]=t.originalFieldId,!(s>++d)){var r=jQuery(o),i=ae(r);l.forEach(function(e){e.remove()});for(var f=0;f6)return t.append(Ut(e,"even")),t;if(5!==e&&t.append(Ut(e,"even")),e%2==1&&t.append(Ut(e,"middle")),e<6)t.append(Ut(e,"left")),t.append(Ut(e,"right"));else{var r=c();r.classList.add("frm_fourth"),t.prepend(r)}return t}(e),l=t.closest("ul.frm_sorting");return l&&function(e,t){for(var r=t.children.length,n=0;n6?"frm_full":e%2==1?"frm_fourth":"frm_third"}return n.classList.add(r),n.setAttribute("layout-type",t),n.append(function(e,t){for(var r=Yt(),n=0;n6?"frm1":[2,3,4,6].includes(e)?sr(12/e):5===e&&void 0!==t?0===t?"frm4":"frm2":"frm12"}function Jt(e){switch(e){case 2:case 3:return"frm3";case 4:case 5:return"frm2";case 6:return"frm1";default:return"frm12"}}function Xt(e){switch(e){case 2:return"frm9";case 3:case 4:return"frm6";case 5:return"frm4";case 6:return"frm7";default:return"frm12"}}function Yt(){var e=c();return e.classList.add("frm_grid_container"),e}function Zt(){var e=document.querySelector(".frm-field-group-hover-target");if(e){var t=this.getAttribute("layout-type");le(ae(jQuery(e)).first(),t),ur()}}function er(){var e=tr(),t=this.getAttribute("layout-type");le(ae(e).first(),t),vr()}function tr(){var e=jQuery(".frm-selected-field-group"),t=e.first();return e.not(t).each(function(){ae(jQuery(this)).each(function(){var e=this.parentNode;ae(t).last().after(this),jQuery(e).children("li.form-field").length||e.closest("li.frm_field_box").remove()})}),En(),le(ae(t).first()),t}function rr(){null===this.closest(".frm-merge-fields-into-row")&&nr(ae(jQuery(".frm-field-group-hover-target")))}function nr(e){var t=e.length,r=document.getElementById("frm_field_group_popup");r.innerHTML="";var n=c();n.style.padding="0 24px";var o=Kt(5===t?6:t),i=c();if(i.style.padding="20px 0",i.classList.add("frm_grid_container"),5===t){var a=document.createElement("span");a.classList.add("frm1"),i.append(a)}var l=wr()>0&&ar(Kt(t));!1!==l&&l>=12&&(l=Math.floor(12/t));for(var s=0;s ',""),t);e.prepend(r),document.getElementById("frm-field-group-message-dismiss").addEventListener("click",function(){pr(document.getElementById("frm-field-group-message"))})}}(),"ul"===e.originalEvent.target.nodeName.toLowerCase()){var t=document.querySelector(".frm-field-group-hover-target");if(t){var r=e.ctrlKey||e.metaKey,n=e.shiftKey,o=t.classList.contains("frm-selected-field-group"),i=function(){var e=jQuery(".frm-selected-field-group");if(e.length)return e;var t=gr();if(t){var r=t.closest("ul");if(r&&1===ae(jQuery(r)).length)return r.classList.add("frm-selected-field-group"),jQuery(r)}return jQuery()}(),a=i.length;if(r||n){var l=gr();if(null===l||jQuery(l).siblings("li.form-field").length||(l.parentNode.classList.add("frm-selected-field-group"),++a),r){if(o)return--a,t.classList.remove("frm-selected-field-group"),void yr(a);++a}else if(n&&!o){++a;var s=i.first();(s.parent().index()=2||1===e&&ae(jQuery(document.querySelector(".frm-selected-field-group"))).length>1?function(){var e=document.getElementById("frm_field_multiselect_popup");if(e)return e.classList.toggle("frm-unmergable",!br()),e;(e=c()).id="frm_field_multiselect_popup",br()||e.classList.add("frm-unmergable");var t=c();t.classList.add("frm-merge-fields-into-row"),t.textContent=I("Merge into row","formidable");var r=document.createElement("a");r.style.marginLeft="5px",r.classList.add("frm_icon_font","frm_arrowdown6_icon"),r.setAttribute("href","#"),t.append(r),e.append(t);var n=c();n.classList.add("frm-multiselect-popup-separator"),e.append(n);var o=c();o.classList.add("frm-delete-field-groups"),o.append(Gt("frm_trash_svg")),e.append(o),document.getElementById("post-body-content").append(e),jQuery(e).hide().fadeIn()}():hr(),De()}function vr(e){if(void 0!==e){if(null!==e.originalEvent.target.closest("#frm-show-fields"))return;if(e.originalEvent.target.classList.contains("frm-merge-fields-into-row"))return;if(null!==e.originalEvent.target.closest(".frm-merge-fields-into-row"))return;if(e.originalEvent.target.classList.contains("frm-custom-field-group-layout"))return;if(e.originalEvent.target.classList.contains("frm-cancel-custom-field-group-layout"))return}jQuery(".frm-selected-field-group").removeClass("frm-selected-field-group"),jQuery(document).off("click",vr),hr()}function hr(){var e=document.getElementById("frm_field_multiselect_popup");e&&e.remove()}function br(){var e=document.querySelectorAll(".frm-selected-field-group"),t=e.length;if(1===t)return!1;for(var r=0,n=0;n12)return!1}return!0}function jr(e){if(null===e.originalEvent.target.closest("#frm_field_group_popup")&&!e.originalEvent.target.classList.contains("frm-custom-field-group-layout")){var t=zt(wr(),document.querySelector(".frm-selected-field-group").firstChild);this.append(t)}}function wr(){var e=0;return jQuery(document.querySelectorAll(".frm-selected-field-group")).each(function(){e+=ae(jQuery(this)).length}),e}function Qr(){var e,t=(e=[],jQuery(".frm-selected-field-group > li.form-field").each(function(){e.push(this.dataset.fid)}),e),r=function(e){return function(t){t.preventDefault(),function(e){e.forEach(function(e){kr(e)})}(e)}}(t),n=document.getElementById("frm_field_multiselect_popup");n&&n.remove(),this.setAttribute("data-frmverify",Nt(t.length)),D(this);var o=document.getElementById("frm-confirmed-click");null==o||o.removeAttribute("data-deletefield"),jQuery(o).on("click",r),jQuery("#frm_confirm_modal").one("dialogclose",function(){jQuery(o).off("click",r)})}function xr(){kr(this.getAttribute("data-deletefield"))}function kr(e){var t=jQuery("#frm_field_id_".concat(e));Er(e),t.hasClass("edit_field_type_divider")&&t.find("li.frm_field_box[data-fid]").each(function(){Er(this.getAttribute("data-fid"))}),An()}function Er(e){jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_delete_field",field_id:e,nonce:frmGlobal.nonce},success:function(){var t,r,n,o=jQuery(document.getElementById("frm_field_id_".concat(e))),i=jQuery("#frm-single-settings-".concat(e));i.is(":visible")&&(null===(t=document.querySelector(".frm-settings-panel .frm-tabs-navs ul > li:first-child"))||void 0===t||t.click(),document.querySelector("#frm-options-panel .frm-single-settings").classList.remove("frm_hidden")),function(e){var t=e[0].querySelectorAll(".frm-inline-modal[data-fills]");t.length&&t.forEach(function(e){e.classList.add("frm_hidden"),e.removeAttribute("data-fills"),e.closest("form").append(e)})}(i),i.remove(),o.fadeOut("slow",function(){var e,t=o.closest(".start_divider"),r=o.data("type"),n=o.siblings("li.form-field");if(n.length||(o.is(".edit_field_type_end_divider")?n.length=o.closest("li.form-field").siblings():e=o.closest("ul.frm_sorting").parent()),o.remove(),"break"===r?Dr():"product"===r&&(qe(),ot()),n.length?le(n.first()):e.remove(),0===jQuery("#frm-show-fields li").length||function(){if(b.get(0).childElementCount>1)return!1;var e=b.get(0).firstElementChild.firstElementChild.querySelectorAll("li.frm_field_box");return!(e.length>1)&&e[0].classList.contains("edit_field_type_submit")}()){var i=document.getElementById("frm_form_editor_container");i.classList.remove("frm-has-fields"),i.classList.add("frm-empty-fields")}else t.length&&Sn(t);z()}),o.length&&(r=o.data("type"),(n=document.getElementById(r))&&n.dataset.limit&&Ar(r)-11)for(document.getElementById("frm-fake-page").style.display="block",e=0;e200)&&(M(a.repeat_limit_min),this.value="")}function Zr(){var e=this.value;""!==e&&(e<1||e>200)&&(M(a.checkbox_limit),this.value="")}function en(e,t){jQuery(e).closest(".frm_field_box").find(".frm_".concat(t,"_form_row .frm_repeat_label")).text(e.value)}function tn(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=this.value,r=document.getElementById("frm_show_selected_fields_".concat(e)),n=document.getElementById("frm_show_selected_forms_".concat(e));jQuery(n).find("select").val(""),"form"===t?(n.style.display="inline",function(e){if(null!==e)for(;e.firstChild;)e.firstChild.remove()}(r)):(r.style.display="none",n.style.display="none",kn(t,e))}function rn(){var e=nn(this);if(e){var t=jQuery(this).closest(".frm_single_option");!function(e,t,r){var n=r.data("optkey"),o=vn(e),i=jQuery('label[for="field_'.concat(t,"-").concat(n,'"]')),a="field_options[options_".concat(e,"][").concat(n,"]"),l=jQuery('input[name="'.concat(a,'[label]"]'));if(i.length<1)return an(e),void(r.find('input[name^="default_value_"]').is(":checked")&&l.length>0&&jQuery('select[name^="item_meta['.concat(e,']"]')).val(l.val()));var s,d=i.children("input");if(s=l.length<1?(l=jQuery('input[name="'.concat(a,'"]'))).val():o?jQuery('input[name="'.concat(a,'[value]"]')).val():l.val(),!(l.length<1)){var f=i[0].childNodes;if(hn(e)){var u=function(e,t,r){var n,o=e.find("img");o&&(n=o.attr("src"));var i=bn(t);return gn(r.val(),i,n)}(r,e,l),m=i.find(".frm_image_option_container");m.length>0?m.replaceWith(u):(f[f.length-1].nodeValue="",i.append(u))}else{var _=!1;f.forEach(function(t,r){if(!1===_)"INPUT"===t.tagName&&(_=r);else if(r===_+1){var n="";!function(e){var t=document.getElementsByName("field_options[image_options_".concat(e,"]")),r=Array.from(t).find(function(e){return e.checked&&"buttons"===e.value});return void 0!==r}(e)?t.nodeValue=" ".concat(l.val()):(n=c({className:"frm_label_button_container",text:" ".concat(l.val())}),i[0].replaceChild(n,t))}else t.remove()})}d.val(s),defaultVal=r.find('input[name^="default_value_"]'),d.prop("checked",!!defaultVal.is(":checked"))}}(e.fieldId,e.fieldKey,t)}}function nn(e){var t=jQuery(e).closest(".frm_sortable_field_opts");return!!t.length&&{fieldId:t.attr("id").replace("frm_field_","").replace("_opts",""),fieldKey:t.data("key")}}function on(e){var t,r=document.getElementById("field_options_image_size_".concat(e)),n="";return r&&""!==(t=r.value)&&(n=t),n}function an(e){var t=jQuery('[name^="item_meta['.concat(e,']"]'));if(!(t.length<1)){var r={fieldId:e,metaInput:t[0]};if(!1===wp.hooks.applyFilters("frm_custom_reset_displayed_opts",!1,r)){if(t.is("select")){var n=document.getElementById("frm_placeholder_".concat(e));n&&""!==n.value?fn(t[0],{sourceID:e,placeholder:n.value}):fn(t[0],{sourceID:e})}else{var o=mn(e),i=jQuery("#field_".concat(e,"_inner_container > .frm_form_fields")),a=hn(e),l=a?on(e):"",s=a?"frm_image_option frm_image_".concat(l," "):"";i.html("");for(var c=nn(jQuery("#frm_delete_field_".concat(e,"-000_container"))),d=Pi(e),f="hidden"===t.attr("type")?t.data("field-type"):t.attr("type"),u=0;u=0;f--)d();var u=c.querySelector('option[value=""]');null!==u&&c.prepend(u)}}}function cn(e,t,r,n){null!==t||e.querySelector('option[value="'.concat(r,'"]'))||((t=frmDom.tag("option",{text:n})).value=r),e.prepend(t)}function dn(e,t,r,n,o,i){var a="",l=t.key.includes("other"),s="field_".concat(n,"-").concat(t.key),c="scale"===e?"radio":e,d=' ');return this.getSingle=function(){return""!==(a=wp.hooks.applyFilters("frm_admin.build_single_option_template",a,{opt:t,type:e,fieldId:r,classes:i,id:s}))?a:'\n\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t").concat(pn(t.label),"\n\t\t\t\t\t \n\t\t\t\t\t").concat(l?d:"","\n\t\t\t\t
")},this.getSingle()}function fn(e,t){if(e){var r=t.sourceID,n=t.placeholder,o=Pi(r),i=t.other;!function(e){var t;if(void 0!==e.options)for(t=e.options.length-1;t>=0;t--)e.remove(t)}(e);for(var a=mn(r,e.id.includes("frm_field_logic_opt")),l=void 0!==n,s=0;s1&&void 0!==arguments[1]&&arguments[1],s=[],c=jQuery('input[name^="field_options[options_'.concat(e,']"]')).filter('[name$="[label]"], [name*="[other_"]'),d=Pi(e),f=bn(e),u=hn(e),m=vn(e);for(t=0;t0||(o=r=c[t].value,i=c[t].name.replace("field_options[options_".concat(e,"]["),"").replace("[label]","").replace("]",""),m&&(n=c[t].name.replace("[label]","[value]"),r=jQuery('input[name="'.concat(n,'"]')).val(),l&&""===o&&(o=""!==r?r:frm_admin_js.no_label)),u&&(o=gn(o,f,_n(c[t]))),a={saved:r,label:o=frmAdminBuild.hooks.applyFilters("frm_choice_field_label",o,e,c[t],u),checked:yn(c[t].id),key:i},d&&(n=c[t].name.replace("[label]","[price]"),a.price=jQuery('input[name="'.concat(n,'"]')).val()),s.push(a));return s}function _n(e){var t=jQuery(e).siblings(".frm_image_preview_wrapper");if(!t.length)return"";var r=t.find("img");return r.length?r.attr("src"):""}function pn(e){(e instanceof Element||e instanceof Document)&&(e=e.outerHTML);var t=jQuery.parseHTML(e).reduce(function(e,t){var r=frmDom.cleanNode(t);return"#text"===r.nodeName?e+r.textContent:e+r.outerHTML},"");return t!==e?pn(t):t}function gn(e,t,r){var n,o=e;o=pn(o),r?n=m({src:r,alt:o}):(n=c({className:"frm_empty_url"})).innerHTML=a.image_placeholder_icon;var i=t?" frm_label_with_image":"",l=[n];if(t){var d=s("span",{className:"frm_text_label_for_image_inner"});d.innerHTML=o,l.push(s("span",{className:"frm_text_label_for_image",child:d}))}return s("span",{className:"frm_image_option_container".concat(i),children:l})}function yn(e){var t=jQuery("#".concat(e));if(0===t.length)return!1;var r=t.siblings("input[type=checkbox]");return r.length&&r.prop("checked")}function vn(e){return jn("separate_value_".concat(e))}function hn(e){for(var t=!1,r=document.getElementsByName("field_options[image_options_".concat(e,"]")),n=0;n=0&&(t.splice(r,1),e.val(t),e.next(".btn-group").find('.multiselect-container input[value=""]').prop("checked",!1))}(jQuery(this))}function Bn(e){e.val(""),e.next(".btn-group").find('.multiselect-container input[value!=""]').prop("checked",!1)}function Cn(){jQuery(".frm-hide-empty").each(function(){0===jQuery(this).text().trim().length&&jQuery(this).remove()})}function Nn(e){e.preventDefault(),function(e,t,r){var n=document.getElementById(e.getAttribute("data-open")),o=jQuery(e).closest("p,ul"),i=void 0!==t;if(o.hasClass("frm-open"))o.removeClass("frm-open"),n.classList.add("frm_hidden");else{if(i||(t=Ko(e)),t){if(!i){var a=r.key;"Enter"!==a&&" "!==a&&t.focus()}o.after(n),n.setAttribute("data-fills",t.id.replace("-proxy-input","")),0===n.id.indexOf("frm-calc-box")&&et(n,!0)}o.addClass("frm-open"),n.classList.remove("frm_hidden"),wp.hooks.doAction("frm_show_inline_modal",n,e)}}(this,void 0,e)}function Tn(e){e.preventDefault(),this.parentNode.classList.add("frm_hidden"),jQuery('.frm-open [data-open="'.concat(this.parentNode.id,'"]')).closest(".frm-open").removeClass("frm-open")}function On(e){var t=e.target;t.closest(".frm-inline-modal.frm-modal-no-dismiss")||t.closest(".frm-show-inline-modal")||t.closest("#frm_adv_info")||t.closest(".frm-token-proxy-input")||document.querySelectorAll(".frm-inline-modal.frm-modal-no-dismiss:not(.frm_hidden)").forEach(function(e){e.classList.add("frm_hidden"),e.previousElementSibling.classList.remove("frm-open")})}function Fn(){var e,t=this.getAttribute("data-frmchange").split(",");for(e=0;e').before(' ')}function Zn(){var e="success";"options[edit_action]"===this.name&&(e="edit");var t=jQuery(this).val();jQuery(".".concat(e,"_action_box")).hide(),"redirect"===t?jQuery(".".concat(e,"_action_redirect_box.").concat(e,"_action_box")).fadeIn("slow"):"page"===t?jQuery(".".concat(e,"_action_page_box.").concat(e,"_action_box")).fadeIn("slow"):jQuery(".".concat(e,"_action_message_box.").concat(e,"_action_box")).fadeIn("slow")}function eo(e){var t,r,n;if(e.stopPropagation(),!function(e){var t=jQuery(e),r=t.closest(".frm_form_action_settings"),n=r.find(".widget-inside");if(n.find("p, div, table").length)return!1;var o=r.find(".widget-top");return o.one("frm-action-loaded",function(){t.trigger("click"),r.removeClass("open"),n.hide()}),o.trigger("click"),!0}(e.target)){var o=e.target.closest(".frm_form_action_settings"),i=o.querySelectorAll(".wp-editor-area");i.length&&i.forEach(function(e){tinymce.EditorManager.execCommand("mceRemoveEditor",!0,e.id)});var a=jQuery(o).clone(),l=a.attr("id").replace("frm_form_action_",""),s=to(l),d=null===(t=o.querySelector(".frm_action_name"))||void 0===t?void 0:t.value,f=function(e,t){for(var r=new Set(t),n=e,o=2;r.has(n);)n="".concat(e," (").concat(o,")"),o++;return n}((null!==(r=null===(n=o.querySelector(".widget-title h4 span:not(.frm-border-icon)"))||void 0===n?void 0:n.textContent.trim())&&void 0!==r?r:"").replace(/ \(\d+\)$/,""),ro(d));a[0].querySelector(".widget-title h4 span:not(.frm-border-icon)").textContent=f,a[0].querySelector('input[name$="['.concat(l,'][post_title]"]')).value=f,a.find(".frm_action_id, .frm-btn-group").remove(),a.find('input[name$="['.concat(l,'][ID]"]')).val(""),a.find(".widget-inside").hide(),a.find("input[type=text], textarea, input[type=number]").prop("defaultValue",function(){return this.value}),a.find("input[type=checkbox], input[type=radio]").prop("defaultChecked",function(){return this.checked});var u=new RegExp("\\[".concat(l,"\\]"),"g"),m=new RegExp("_".concat(l,'"'),"g"),_=new RegExp("_".concat(l," "),"g"),p=new RegExp("-".concat(l,'"'),"g"),g=new RegExp('"'.concat(l,'"'),"g"),y=a.html().replace(u,"[".concat(s,"]")).replace(m,"_".concat(s,'"'));y=(y=y.replace(_,"_".concat(s," "))).replace(p,"-".concat(s,'"')).replace(g,'"'.concat(s,'"'));var v=c({id:"frm_form_action_".concat(s),className:a.get(0).className});v.setAttribute("data-actionkey",s),v.innerHTML=y,v.querySelectorAll(".wp-editor-wrap, .wp-editor-wrap *").forEach(function(e){"string"==typeof e.className&&(e.className=e.className.replace(l,s)),e.id=e.id.replace(l,s)}),v.classList.remove("open"),document.getElementById("frm_notification_settings").append(v),i.length&&(i.forEach(function(e){frmDom.wysiwyg.init(e)}),v.querySelectorAll(".wp-editor-area").forEach(function(e){frmDom.wysiwyg.init(e)})),v.classList.contains("frm_single_on_submit_settings")&&v.querySelector("input.frm-page-search")&&bi(v),ui(),wp.hooks.doAction("frm_after_duplicate_action",v)}}function to(e){var t=parseInt(e,10)+11;return document.getElementById("frm_form_action_".concat(t))&&(t=to(++t)),t}function ro(e){return Array.from(document.querySelectorAll(".frm_single_".concat(e,"_settings .widget-title h4 span:not(.frm-border-icon)")),function(e){return e.textContent.trim()})}function no(){var e,t=jQuery(this).data("actiontype");if(!fo(t)){var r=(e=Lr(document.querySelectorAll(".frm_form_action_settings"),"frm_form_action_"),void 0!==document.getElementById("frm_form_action_".concat(e))&&(e+=100),S>=e&&(e=S+1),S=e,e),n=k,o=ro(t),i=document.createElement("div");i.classList.add("frm_single_".concat(t,"_settings"));var a=document.getElementById("frm_notification_settings");a.append(i),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_action",type:t,list_id:r,form_id:n,nonce:frmGlobal.nonce,existing_titles:o},success:function(e){var n;Ro(),i.remove(),null===(n=document.querySelector(".frm-no-actions-message"))||void 0===n||n.classList.add("frm_hidden"),document.querySelectorAll(".frm_form_action_settings.open").forEach(function(e){return e.classList.remove("open")});var o=c();o.innerHTML=e;var l=o.querySelector(".widget-top");Array.from(o.children).forEach(function(e){return a.append(e)}),jQuery(".frm_form_action_settings").fadeIn("slow");var s=document.getElementById("frm_form_action_".concat(r));s.classList.add("open"),document.getElementById("post-body-content").scroll({top:s.offsetTop+10,left:0,behavior:"smooth"}),co(t),Yn("#frm_form_action_".concat(r)),ui(),bi(s),l&&jQuery(l).trigger("frm-action-loaded"),frmAdminBuild.hooks.doAction("frm_added_form_action",s)}})}}function oo(e){e.on("Change",function(){!function(e){(function(){var e=document.querySelector(".frm-single-settings:not(.frm_hidden)");if(!e)return!1;var t=e.querySelector(".wp-editor-wrap");return t&&t.classList.contains("tmce-active")})()&&!tinyMCE.activeEditor.isHidden()&&(e.targetElm.value=e.getContent(),jQuery(e.targetElm).trigger("change"))}(e)})}function io(e){var t=this;if(null!==e)return this.fragment=document.createDocumentFragment(),this.initOnceInAllInstances=function(){void 0===io.prototype.endMarker&&(io.prototype.endMarker=document.getElementById("frm-end-form-marker"))},this.append=function(e){var r=e?e.parentElement.classList:"";e&&(r.contains("frm_field_box")||r.contains("divider_section_only"))&&t.fragment.append(e)},this.moveFields=function(){j.insertBefore(t.fragment,io.prototype.endMarker)},this.initOnceInAllInstances(),void 0!==e?(this.append(e),void this.moveFields()):{append:this.append,moveFields:this.moveFields}}function ao(){var e=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),t=this.getAttribute("data-emailrow");jQuery("#frm_form_action_".concat(e," .frm_").concat(t,"_row")).fadeIn("slow"),jQuery(this).fadeOut("slow")}function lo(){var e=jQuery(this).closest(".frm_form_action_settings"),t=this.getAttribute("data-emailrow"),r=".frm_".concat(t,"_row"),n=".frm_".concat(t,"_button");jQuery(e).find(n).fadeIn("slow"),jQuery(e).find(r).fadeOut("slow",function(){jQuery(e).find("".concat(r," input")).val("")})}function so(){var e=jQuery(this).closest(".frm_form_action_settings"),t=".frm_from_to_match_row";e.find('input[name$="[post_content][from]"]').val()===e.find('input[name$="[post_content][email_to]"]').val()?jQuery(e).find(t).fadeIn("slow"):jQuery(e).find(t).fadeOut("slow")}function co(e){var t,r,n=document.querySelectorAll(".frm_".concat(e,"_action"));fo(e)?(t=n,r=uo(e)>0,t.forEach(function(e){e.classList.remove("frm_active_action"),e.classList.add("frm_inactive_action"),r&&e.classList.add("frm_already_used")})):n.forEach(function(e){e.querySelector(".frm_show_upgrade")||(e.classList.remove("frm_inactive_action","frm_already_used"),e.classList.add("frm_active_action"))})}function fo(e){var t=function(e){return jQuery(".frm_single_".concat(e,"_settings")).length}(e)>=uo(e),r={type:e};return wp.hooks.applyFilters("frm_action_at_limit",t,r)}function uo(e){return parseInt(jQuery(".frm_".concat(e,"_action")).data("limit"),10)}function mo(){var e=a.only_one_action,t=this.dataset.limit;void 0!==t&&((t=parseInt(t))>1?e=e.replace(1,t).trim():e+=" ".concat(a.edit_action_text)),M(e)}function _o(e,t){var r=jQuery(t).closest(".frm_form_action_settings").find(".frm_action_name").val(),n=document.getElementById("form_id").value,o=document.getElementById("frm_logic_row_".concat(e)),i=Lr(o.querySelectorAll(".frm_logic_row"),"frm_logic_".concat(e,"_")),a=c({id:"frm_logic_".concat(e,"_").concat(i),className:"frm_logic_row frm_hidden"}),l=document.getElementById("logic_link_".concat(e)),s=l?o.closest(".frm_logic_rows"):null;o.append(a),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_logic_row",email_id:e,form_id:n,meta_name:i,type:r,nonce:frmGlobal.nonce},success:function(e){a.insertAdjacentHTML("beforebegin",e),a.remove();var t=o.querySelector(".frm_logic_row:last-child"),r=t?t.querySelector(".frm-logic-rule-text"):null;r&&(r.textContent=o.dataset.ruleText||""),l&&l.classList.add("frm_hidden"),s&&(s.classList.remove("frm_hidden"),s.style.display="")}})}function po(){return _o(jQuery(this).data("emailkey"),this),!1}function go(){var e;if(this.checked){var t=this.getAttribute("data-emailkey");if(t&&null!==(e=this.dataset.toggleclass)&&void 0!==e&&e.startsWith("frm_logic_rows_")){var r=document.getElementById("frm_logic_row_".concat(t));r&&!r.querySelector(".frm_logic_row")&&_o(t,this)}}}function yo(){var e=jQuery("select.frm_single_post_field");e.css("border-color","");var t=this,r=jQuery(t).val();if(""===r||"checkbox"===r)return!1;e.each(function(){if(jQuery(this).val()===r&&this.name!==t.name)return this.style.borderColor="red",jQuery(t).val(""),M(a.field_already_used),!1})}function vo(){var e=jQuery(this).val();""===e?(jQuery(".frm_post_content_opt, select.frm_dyncontent_opt").hide().val(""),jQuery(".frm_dyncontent_opt").hide()):"post_content"===e?(jQuery(".frm_post_content_opt").show(),jQuery(".frm_dyncontent_opt").hide(),jQuery("select.frm_dyncontent_opt").val("")):(jQuery(".frm_post_content_opt").hide().val(""),jQuery("select.frm_dyncontent_opt, .frm_form_field.frm_dyncontent_opt").show())}function ho(){var e=jQuery(this).val(),t=jQuery(document.getElementById("frm_dyncontent"));""===e||"new"===e?(t.val(""),jQuery(".frm_dyncontent_opt").show()):jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_display_get_content",id:e,nonce:frmGlobal.nonce},success:function(e){t.val(e),jQuery(".frm_dyncontent_opt").show()}})}function bo(){var e,t,r=document.getElementById("frm_posttax_rows").childNodes,n=document.querySelector(".frm_post_parent_field"),o=document.querySelector(".frm_post_menu_order_field"),i=this.value;jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_replace_posttax_options",post_type:i,nonce:frmGlobal.nonce},success:function(n){for(var o=0;o');var e=jQuery(this).closest(".frm_form_action_settings").find('select[name$="[post_content][post_type]"]').val(),t=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),r=jQuery(this).closest(".frm_posttax_row").attr("id").replace("frm_posttax_",""),n=jQuery(this).val(),o=jQuery(document.getElementById("".concat(r,"_show_exclude"))).is(":checked")?1:0,i=jQuery('select[name$="[post_category]['.concat(r,'][field_id]"]')).val(),a=jQuery('input[name="id"]').val();jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_posttax_row",form_id:a,post_type:e,tax_key:r,action_key:t,meta_name:n,field_id:i,show_exclude:o,nonce:frmGlobal.nonce},success:function(e){jQuery(document.getElementById("frm_posttax_".concat(r))).replaceWith(e)}})}}function Eo(){var e=jQuery(this).closest(".frm_postmeta_row"),t=e.find(".frm_cancelnew"),r=e.find(".frm_enternew");return e.find("select.frm_cancelnew").is(":visible")?(t.hide(),r.show()):(t.show(),r.hide()),e.find("input.frm_enternew, select.frm_cancelnew").val(""),!1}function Ao(){var e=jQuery(this),t=e.val();"checkbox"===e.attr("type")&&!1===this.checked&&(t="");var r=e.data("toggleclass");""===t?jQuery(".".concat(r)).hide():(jQuery(".".concat(r)).show(),jQuery(".hide_".concat(r,"_").concat(t)).hide())}function So(){Wn()||(Kn(this),Rn(document.querySelector(".frm_form_settings")))}function Lo(e){return e.preventDefault(),Io(jQuery(this),this.getAttribute("data-code")),!1}function Io(e,t){var r=!1,n=e;if("object"===o(e)){if(e.hasClass("frm_noallow"))return;void 0===(n=jQuery(e).closest("[data-fills]").attr("data-fills"))&&void 0!==(n=e.closest("div").attr("class"))&&(n=n.split(" ")[1])}if(void 0===n){var i=document.activeElement;"search"===i.type?null===(n=i.id.replace("-search-input","")).match(/\d/gi)&&(n=(i=jQuery(".frm-single-settings:visible .".concat(n))).attr("id")):n=i.id}n&&(r=jQuery("#wp-".concat(n,"-wrap.wp-editor-wrap")).length>0);var a=jQuery(document.getElementById(n));if(void 0===e.attr("data-shortcode")&&(!a.length||void 0===a.attr("data-shortcode"))){var l=e.parents("ul.frm_code_list").attr("data-shortcode");"undefined"!==l&&"no"===l||(t="[".concat(t,"]"))}if(r&&(wpActiveEditor=n),!a.length)return!1;if("[default-html]"===t||"[default-plain]"===t){var s=0;"[default-plain]"===t&&(s=1),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_get_default_html",form_id:jQuery('input[name="id"]').val(),plain_text:s,nonce:frmGlobal.nonce},elementId:n,success:function(e){if(r){var t=document.createElement("p");t.innerText=e,send_to_editor(t.innerHTML)}else qo(a,e)}})}else t=function(e,t,r){return"object"===o(t)&&t instanceof jQuery&&0===r[0].id.indexOf("success_url_")&&(t=t[0]).closest("#frm-insert-fields-box")?(t.parentNode.classList.contains("frm_insert_url")||(e=e.replace("]"," sanitize_url=1]")),e):e}(t,e,a),r?send_to_editor(t):qo(a,t);return!1}function qo(e,t){if(document.selection)e[0].focus(),document.selection.createRange().text=t;else{var r=e[0],n=r.selectionEnd;t=function(e,t,r,n){var o=e.data("sep");if(void 0===o)return t;var i=e.val();if(!i.trim().length)return t;var a=new RegExp("".concat(o,"\\s*$")),l=new RegExp("^\\s*".concat(o));return i.substr(0,r).trim().length&&!1===a.test(i.substr(0,r))&&(t=o+t),i.substr(n,i.length).trim().length&&!1===l.test(i.substr(n,i.length))&&(t+=o),t}(e,t,r.selectionStart,n),r.value=r.value.substr(0,r.selectionStart)+t+r.value.substr(r.selectionEnd,r.value.length);var o=n+t.length;!function(e,t){if(e.classList.contains("frm_classes")&&Bo(t)){var r=e.value.split(" ").filter(Bo);r.length&&(e.value=function(e,t,r){var n=e.split(" ").filter(function(e){return(e=e.trim()).length&&!t.includes(e)});return n.includes(r)||n.push(r),n.join(" ")}(e.value,r,t.trim()))}}(r,t),r.focus(),r.setSelectionRange(o,o)}Gn(e)}function Bo(e){return["frm_half","frm_third","frm_two_thirds","frm_fourth","frm_three_fourths","frm_fifth","frm_sixth","frm2","frm3","frm4","frm6","frm8","frm9","frm10","frm12"].includes(e.trim())}function Co(){var e=document.getElementById("frm-id-condition"),t=document.getElementById("frm-key-condition");"id"===this.value?(e.classList.remove("frm_hidden"),t.classList.add("frm_hidden"),Li(t,"change")):(e.classList.add("frm_hidden"),t.classList.remove("frm_hidden"),Li(e,"change"))}function No(){var e=document.getElementById("frm-id-key-condition-id").checked?"frm-id-condition":"frm-key-condition",t=document.getElementById("frm-is-condition").value,r=document.getElementById("frm-text-condition").value,n=document.getElementById("frm-insert-condition"),o=(e=document.getElementById(e)).options[e.selectedIndex].value,i="if ".concat(o," ").concat(t,'="').concat(r,'"]');n.setAttribute("data-code","".concat(i+a.conditional_text,"[/if ").concat(o)),n.innerHTML="[".concat(i,"[/if ").concat(o,"]")}function To(e){return e.getAttribute("href")||e.getAttributeNS("http://www.w3.org/1999/xlink","href")}function Oo(e){var t;e.parentNode.parentNode.classList.contains("frm_has_shortcodes")&&(Xo(),"use"===(t=Jo(e)).tagName?To(t=t.firstElementChild).includes("frm_close_icon")||Ho(t,"nofocus"):t.classList.contains("frm_close_icon")||Ho(t,"nofocus"))}function Fo(e){e.preventDefault(),e.stopPropagation(),Ho(this)}function Do(e){!function(e){var t;if(e.id.startsWith("field_options_type_")){var r=e.id.split("_"),n=r.length&&r[r.length-1];null!==(t=document.querySelector("#frm-single-settings-".concat(n)))&&void 0!==t&&t.classList.contains("frm-type-".concat(e.value))||Mo()}}(e.target)}function Mo(e){var t;void 0===e&&(e=I("You are changing the field type. Not all field settings will appear as expected until you reload the page. Would you like to reload the page now?","formidable")),frmDom.modal.maybeCreateModal("frmSaveAndReloadModal",{title:I("Save and Reload?","formidable"),content:(t=c(e),t.style.padding="var(--gap-md)",t),footer:function(){var e=frmDom.modal.footerButton({text:I("Save and Reload","formidable"),buttonType:"primary"});_(e,function(){var e;(e=document.getElementById("frm_submit_side_top")).classList.contains("frm_submit_ajax")&&e.setAttribute("data-new-addon-installed",!0),e.click()});var t=frmDom.modal.footerButton({text:I("Cancel","formidable"),buttonType:"cancel"});return t.classList.add("dismiss"),frmDom.div({children:[t,e]})}()})}function Po(e){var t;if(e instanceof Event){var r=document.querySelectorAll(".frm-single-settings .frm-show-box.frmsvg use"),n=Array.from(r).find(function(e){return"#frm_close_icon"===e.getAttribute("href")});if(void 0===n)return;t=n.parentElement}else t=e;var o=t.getBoundingClientRect(),i=document.getElementById("frm_adv_info"),a=i.parentElement.getBoundingClientRect();i.style.top="".concat(o.top-a.top+32,"px"),i.style.left="".concat(o.left-a.left-280,"px")}function Ho(e,t){var r=Ko(e),n=document.getElementById("frm_adv_info"),o=e.className;if("svg"===e.tagName&&(e=e.firstElementChild),"use"===e.tagName&&(o=To(e)),o.includes("frm_close_icon"))Xo(n);else{if(Po(e),jQuery(".frm_code_list a").removeClass("frm_noallow"),r.classList.contains("frm_not_email_to")?jQuery("#frm-insert-fields-box .frm_code_list li:not(.show_frm_not_email_to) a").addClass("frm_noallow"):r.classList.contains("frm_not_email_subject")&&jQuery(".frm_code_list li.hide_frm_not_email_subject a").addClass("frm_noallow"),n.setAttribute("data-fills",r.id),n.style.display="block","use"===e.tagName)if(e.hasAttributeNS("http://www.w3.org/1999/xlink","href"))e.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon");else{var l=document.createElementNS("http://www.w3.org/2000/svg","use");l.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon"),e.parentNode.replaceChild(l,e)}else e.className=o.replace("frm_more_horiz_solid_icon","frm_close_icon");"nofocus"!==t&&("none"!==r.style.display?r.focus():jQuery(tinymce.get(r.id)).trigger("focus")),function(e){["address","body"].forEach(function(t){!function(e,t){var r,n=a.contextualShortcodes["".concat(t,"Selector")],o=a.contextualShortcodes[t],l=e.matches(n),s=i(o);try{for(s.s();!(r=s.n()).done;){var c,d=r.value,f=null===(c=document.querySelector('#frm-adv-info-tab .frm_code_list [data-code="'.concat(d,'"]')))||void 0===c?void 0:c.closest("li");null==f||f.classList.toggle("frm_hidden",!l)}}catch(e){s.e(e)}finally{s.f()}}(e,t)})}(r)}}function zo(e){return 0===a.contextualShortcodes.length||!function(e){var t=e.querySelector("a");if(!t)return!1;var r=t.dataset.code;return a.contextualShortcodes.address.includes(r)||a.contextualShortcodes.body.includes(r)}(e)||function(e){var t=e.querySelector("a").dataset.code,r=document.getElementById("frm_adv_info").dataset.fills,n=document.getElementById(r),o=a.contextualShortcodes;return o.address.includes(t)?n.matches(o.addressSelector):n.matches(o.bodySelector)}(e)}function Ro(){x||(x=1,window.addEventListener("beforeunload",$o))}function Go(){x=0}function Uo(){x=0}function Wo(){x=0}function $o(e){x&&(e.preventDefault(),e.returnValue="")}function Vo(e,t){var r={my:"top",at:"top+".concat(t),of:window};e.dialog("option","position",r)}function Ko(e){if(e.classList.contains("frm-input-icon"))return e.previousElementSibling;for(var t,r=e.nextElementSibling;r&&("INPUT"!==r.tagName&&"TEXTAREA"!==r.tagName||r.classList.contains("frm-token-input-field"));)r=Ko(r);return r||(r=null===(t=e.closest(".frm-field-formula"))||void 0===t?void 0:t.querySelector(".frm-calc-field")),r}function Jo(e){var t;if(null!==(t=e.nextElementSibling)&&void 0!==t&&t.classList.contains("frm-input-icon"))return e.nextElementSibling;for(var r=e.previousElementSibling;null!==r&&"I"!==r.tagName&&"svg"!==r.tagName;)r=Jo(r);return r}function Xo(e){if((void 0!==e||(e=document.getElementById("frm_adv_info")))&&null===document.getElementById("frm_dyncontent")){e.style.display="none";for(var t=document.querySelectorAll(".frm-show-box.frm_close_icon"),r=0;r".concat(r.data.name,": ").concat(r.data.msg,"
"):'Imported ').concat(r.data.name,"
"),e.find(".status").prepend(n),e.find(".status").show(),C.importQueue=jQuery.grep(C.importQueue,function(e){return e!=t}),C.imported++,0===C.importQueue.length?(e.find(".process-count").hide(),e.find(".forms-completed").text(C.imported),e.find(".process-completed").show()):(e.find(".form-current").text(C.imported+1),ni(e)))})}function oi(e){e.preventDefault();var t=!1,r=jQuery('input[name="frm_export_forms[]"]');jQuery('input[name="frm_export_forms[]"]:checked').val()||(r.closest(".frm-table-box").addClass("frm_blank_field"),t="stop");var n=jQuery('input[name="type[]"]');if(jQuery('input[name="type[]"]:checked').val()||"checkbox"!==n.attr("type")||(n.closest("p").addClass("frm_blank_field"),t="stop"),"stop"===t)return!1;e.stopPropagation(),this.submit()}function ii(){var e=jQuery(this).closest(".frm_blank_field");if(void 0!==e){var t=this.name;("type[]"===t&&jQuery('input[name="type[]"]:checked').val()||"frm_export_forms[]"===t&&jQuery(this).val())&&e.removeClass("frm_blank_field")}}function ai(){null!==jQuery(this).val().match(/\.csv$/i)?jQuery(".show_csv").fadeIn():jQuery(".show_csv").fadeOut()}function li(){var e=document.querySelector('select[name="format"]');return e?e.value:""}function si(e){var t,r,n=e.target.value;di(n),ci.call(e.target),t=n,r=document.getElementById("frm-export-select-all"),"csv"===t?(r.checked=!1,r.disabled=!0):r.disabled=!1}function ci(){var e=jQuery(this),t=e.find(":selected"),r=t.data("support"),n=r.indexOf("|");jQuery('input[name="type[]"]').each(function(){this.checked=!1,r.includes(this.value)?(this.disabled=!1,-1===n&&(this.checked=!0)):this.disabled=!0}),"csv"===e.val()?(jQuery(".csv_opts").show(),jQuery(".xml_opts").hide()):(jQuery(".csv_opts").hide(),jQuery(".xml_opts").show());var o=t.data("count"),i=jQuery('input[name="frm_export_forms[]"]');"single"===o?(i.prop("multiple",!1),i.prop("checked",!1)):(i.prop("multiple",!0),i.prop("disabled",!1)),e.trigger("change")}function di(e){if(""!==e){var t=document.querySelectorAll(".frm-is-repeater");t.length&&("csv"===e?t.forEach(function(e){e.classList.remove("frm_hidden")}):t.forEach(function(e){e.classList.add("frm_hidden")}),Ei.call(document.querySelector(".frm-auto-search")))}}function fi(){var e=jQuery("select[name=format]").find(":selected").data("count"),t=jQuery('input[name="frm_export_forms[]"]');"single"===e&&this.checked?(t.prop("disabled",!0),this.removeAttribute("disabled")):t.prop("disabled",!1)}function ui(){jQuery(".frm_multiselect").hide().each(frmDom.bootstrap.multiselect.init)}function mi(e){e.preventDefault(),gi(this,"frm_multiple_addons")}function _i(e){e.preventDefault(),gi(this,"frm_activate_addon")}function pi(e){e.preventDefault(),gi(this,"frm_install_addon")}function gi(e,t){r(1105).toggleAddonState(e,t)}function yi(){hi()}function vi(e){!function(e,t,r){var n=jQuery("#frm_leave_email_error");n.removeClass("frm_hidden").attr("frm-error",r),jQuery("#frm_leave_email").one("keyup",function(){n.addClass("frm_hidden")})}(0,0,e)}function hi(){var e=document.getElementById("frmapi-email-form");jQuery.ajax({dataType:"json",url:e.getAttribute("data-url"),success:function(t){var r=t.renderedHtml;r=r.replace(/ ]*(formidableforms.css|action=frmpro_css)[^>]*>/gi,""),e.innerHTML=r}})}function bi(e){frmDom.autocomplete.initSelectionAutocomplete(e)}function ji(e){var t=this.parentNode.parentNode,r=t.elements.type.value;e.preventDefault(),this.classList.add("frm_loading_button"),Qi(t,r,this)}function wi(e){var t=this.elements.type.value,r=this.querySelector("button");e.preventDefault(),r.classList.add("frm_loading_button"),Qi(this,t,r)}function Qi(e,t,r){var n=function(e){var t,r,n={},o=e.elements;for(r=0;r .frm-with-line").forEach(function(e){var t=e.nextElementSibling;if(t){var r=t.querySelectorAll(":scope > li.frmbutton"),n=Array.from(r).every(function(e){return e.classList.contains("frm_hidden")});e.classList.toggle("frm_hidden",n)}}),jQuery(this).trigger("frmAfterSearch")}function Ai(e,t){return"s"!==t&&"s"!==e[e.length-1]&&"".concat(e,"s").includes(t)}function Si(e){e.stopPropagation()}function Li(e,t){var r=document.createEvent("HTMLEvents");r.initEvent(t,!1,!0),e.dispatchEvent(r)}function Ii(e,t){var r,n=new XMLHttpRequest,o="string"==typeof e?e:Object.keys(e).map(function(t){return"".concat(encodeURIComponent(t),"=").concat(encodeURIComponent(e[t]))}).join("&");return n.open("post",ajaxurl,!0),n.onreadystatechange=function(){if(n.readyState>3&&200==n.status){r=n.responseText;try{r=JSON.parse(r)}catch(e){}t(r)}},n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.setRequestHeader("Content-type","application/x-www-form-urlencoded"),n.send(o),n}function qi(e,t){e.classList.add("frm-fade"),setTimeout(t,1e3)}function Bi(e){jQuery(e).css("visibility","hidden")}function Ci(e){jQuery(e).css("visibility","visible")}function Ni(e,t){return r(4260).initModal(e,t)}function Ti(e,t,r){if("#"===t){var n=document.getElementById(e);if(void 0!==r)n.style.display=r?"block":"none";else{var o=n.style.display;n.style.display="none"===o?"block":"none"}}else void 0!==r?r?e.show():e.hide():e.is(":visible")?e.hide():e.show()}function Oi(){window.onbeforeunload=null;var e=jQuery(window);e.off("beforeunload.widgets"),e.off("beforeunload.edit-post")}function Fi(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_".concat(e));if(t&&"form"===t.dataset.type)if(t=jQuery(t),this.options[this.selectedIndex].value){t.find(".frm-not-set")[0].classList.add("frm_hidden");var r=t.find(".frm-embed-message");r.html(r.data("embedmsg")+this.options[this.selectedIndex].text),t.find(".frm-embed-field-placeholder")[0].classList.remove("frm_hidden")}else t.find(".frm-not-set")[0].classList.remove("frm_hidden"),t.find(".frm-embed-field-placeholder")[0].classList.add("frm_hidden")}function Di(e){var t=e.target,r=t.value.trim();if(!r.includes("[")||!r.includes("]")){if(isNaN(r.replace(/,/,""))){var n=I("Please enter a valid number.","formidable");return frmAdminBuild.infoModal(n),void function(e){var t=document.querySelectorAll("#frm_info_modal .dismiss, #frm_info_modal #frm-info-click, .ui-widget-overlay.ui-front");function r(){e.classList.add("frm_invalid_field"),setTimeout(function(){return e.focus()},0),t.forEach(function(e){e.removeEventListener("click",r)})}t.forEach(function(e){e.addEventListener("click",r)})}(t)}t.classList.remove("frm_invalid_field")}}function Mi(){var e=jQuery(this).closest(".frm-single-settings"),t=e.find(".frmjs_product_choices"),r=e.find(".frm_prod_options_heading"),n=this.options[this.selectedIndex].value,o=e[0].querySelector(".frm_display_format_options");o&&o.setAttribute("data-product-type",n),t.removeClass("frm_prod_type_single frm_prod_type_user_def"),r.removeClass("frm_prod_user_def"),"single"===n?t.addClass("frm_prod_type_single"):"user_def"===n&&(t.addClass("frm_prod_type_user_def"),r.addClass("frm_prod_user_def")),wp.hooks.doAction("frm_product_type_toggled",n,e[0])}function Pi(e){var t=document.getElementById("frm_field_id_".concat(e));return!!t&&"product"===t.getAttribute("data-type")}function Hi(){var e=function(e,t){return window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]},t=function(e,t,r){window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]=r},r=[1,2,3,4,5,6,7,8,9,10,11,12].map(function(e){return"frm".concat(e)}),o=["first","middle","last"];document.addEventListener("change",function(i){i.target.matches(".frm_name_layout_dropdown")&&function(i){var a,l=i.target.value.split("_"),s=i.target.dataset.fieldId,c=document.querySelector("#field_".concat(s,"_inner_container .frm_combo_inputs_container")),d=(a=l.length,"frm".concat(parseInt(12/a)));o.forEach(function(e){var o,i=c.querySelector('[data-sub-field-name="'.concat(e,'"]'));i&&(i.classList.add("frm_hidden"),(o=i.classList).remove.apply(o,n(r)),t(s,e,i))}),l.forEach(function(t){var r=e(s,t);r&&(r.classList.remove("frm_hidden"),r.classList.add(d),c.append(r))}),o.forEach(function(e){var r=document.querySelector(".frm_sub_field_options-".concat(e,'[data-field-id="').concat(s,'"]'));r&&(r.classList.add("frm_hidden"),t(s,"".concat(e,"_options"),r))}),l.forEach(function(t){var r=e(s,"".concat(t,"_options"));r&&r.classList.remove("frm_hidden")})}(i)},!1)}function zi(e,t){var r,n,o,i=!1,a=!1;(r=t.newOption?(new DOMParser).parseFromString(t.newOption,"text/html").body.childNodes[0]:t).querySelectorAll("svg").forEach(function(e){(n=e.getElementsByTagNameNS("http://www.w3.org/2000/svg","use")[0])&&("#frm_drag_icon"===(o=To(n))&&(i=!0),"#frm_save_icon"===o&&(a=!0))}),i||r.prepend(h.drag.cloneNode(!0)),r.querySelector("[id^=field_key_".concat(e,"-]"))&&!a&&r.querySelector("[id^=field_key_".concat(e,"-]")).after(h.save.cloneNode(!0)),t.newOption&&(t.newOption=r)}function Ri(){var e=document.getElementById("frm_leave_email").value.trim();if(""!==e)if(!1!==/^(([^<>()\[\]\\.,;:\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(e)){var t=jQuery("#frmapi-email-form").find("form"),r=t.find('[type="email"]').not(".frm_verify");if(r.length){if(document.getElementById("frm_empty_inbox")){document.getElementById("frm-add-my-email-address").remove();var n=document.getElementById("frm_leave_email_wrapper");if(n){n.classList.add("frm_hidden");var o=d({className:"frm-wait frm_spinner"});o.style.visibility="visible",o.style.float="none",o.style.width="unset",n.parentElement.insertBefore(o,n.nextElementSibling)}}r.val(e),jQuery.ajax({type:"POST",url:t.attr("action"),data:"".concat(t.serialize(),"&action=frm_forms_preview")}).done(function(e){if(jQuery(e).find(".frm_message").text().trim().includes("Thanks!")){var t=document.getElementById("frmapi-email-form").parentElement.querySelector(".frm_spinner");t&&t.remove(),wp.hooks.applyFilters("frm_thank_you_on_signup",!0)&&document.getElementById("frm_leave_email_wrapper").replaceWith(d(I("Thank you for signing up!","formidable")))}else vi("invalid")})}}else vi("invalid");else vi("empty")}function Gi(e){var t;if(O||e.stopPropagation(),!(e.target.classList.contains("frm-show-box")||null!==(t=e.target.parentElement)&&void 0!==t&&t.classList.contains("frm-show-box"))){var r=document.getElementById("frm_adv_info");r&&(r.dataset.fills===e.target.id&&void 0!==e.target.id||e.target.closest("#frm_adv_info")||"none"===r.style.display||Xo(r))}}return{init:function(){var e,t,o,i,a,l,s;!function(){jQuery(document).on("click","#frm-add-my-email-address",function(e){e.preventDefault(),Ri()});var e=document.getElementById("frm_empty_inbox"),t=document.getElementById("frm_leave_email");if(e&&t){var r=document.getElementById("frm-leave-email-modal");r.classList.remove("frm_hidden"),r.querySelector(".frm_modal_footer").classList.add("frm_hidden"),t.addEventListener("keyup",function(e){if("Enter"===e.key){var t=document.getElementById("frm-add-my-email-address");t&&t.click()}})}}(),t=document.querySelector(".frm-admin-footer-links"),o=null!==(e=document.querySelector(".frm_page_container"))&&void 0!==e?e:document.getElementById("wpbody-content"),t&&o&&(o.append(t),t.classList.remove("frm_hidden")),document.addEventListener("show.bs.dropdown",function(){z()}),C={},jQuery(".wp-admin").on("click",function(e){var t=jQuery(e.target),r=jQuery(".dropdown.open");!r.length||t.hasClass("dropdown")||t.closest(".dropdown").length||r.removeClass("open")}),jQuery("#frm_bs_dropdown:not(.open) a").on("click",St),void 0===k&&(k=jQuery(document.getElementById("form_id")).val()),document.querySelectorAll(".frm-warning-dismiss").forEach(function(e){_(e,Lt)}),frmAdminBuild.inboxBannerInit(),b.length>0?frmAdminBuild.buildInit():null!==document.getElementById("frm_notification_settings")?frmAdminBuild.settingsInit():null!==document.getElementById("frm_styling_form")?frmAdminBuild.styleInit():null!==document.getElementById("form_global_settings")?frmAdminBuild.globalSettingsInit():null!==document.getElementById("frm_export_xml")?frmAdminBuild.exportInit():null!==document.querySelector(".frm-inbox-wrapper")?frmAdminBuild.inboxInit():null!==document.getElementById("frm-welcome")?frmAdminBuild.solutionInit():(function(){if(document.body.classList.contains("frm-admin-page-entries")){var e=document.getElementById("screen-options-wrap");if(e){var t=c({className:"frm_warning_style",text:I("Only 10 columns can be selected at a time.","formidable")});t.style.margin=0;var r=e.querySelector("legend");r.parentNode.insertBefore(t,r.nextElementSibling);var n=Array.from(e.querySelectorAll('input[type="checkbox"]')),o=function(){n.reduce(function(e,t){return t.checked?e+1:e},0)>=10?(t.classList.remove("frm_hidden"),n.forEach(function(e){e.checked||(e.parentNode.classList.add("frm_noallow"),e.disabled=!0)})):t.classList.add("frm_hidden")};o(),n.forEach(function(e){e.addEventListener("change",function(e){e.target.checked?o():(t.classList.add("frm_hidden"),n.forEach(function(e){e.parentNode.classList.remove("frm_noallow"),e.disabled=!1}))})})}}}(),bi(),jQuery("[data-frmprint]").on("click",function(){return window.print(),!1})),jQuery(document).on("change","select[data-toggleclass], input[data-toggleclass]",Ao),function(){function e(e){var t=e.options[e.selectedIndex];e.querySelectorAll("option[data-dependency]:not([data-dependency-skip])").forEach(function(e){var r=document.querySelector(e.dataset.dependency);null==r||r.classList.toggle("frm_hidden",t!==e)})}document.querySelectorAll("select.frm_select_with_dependency").forEach(e),frmDom.util.documentOn("change","select.frm_select_with_dependency",function(t){return e(t.target)})}(),(jQuery(document.getElementById("frm_adv_info")).length>0||jQuery(".frm_field_list").length>0)&&frmAdminBuild.panelInit(),i=jQuery(".wrap, .frm_wrap"),a=document.getElementById("frm_confirm_modal"),l=!1,s=!1,jQuery(a).on("click","[data-deletefield]",xr),jQuery(a).on("click","[data-removeid]",R),jQuery(a).on("click","[data-trashtemplate]",ki),i.on("click",".frm_remove_tag, .frm_remove_form_action",R),i.on("click","a[data-frmverify]",F),i.on("click","a[data-frmtoggle]",P),i.on("click","a[data-frmhide], a[data-frmshow]",H),i.on("change","input[data-frmhide], input[data-frmshow]",H),i.on("click",".widget-top,a.widget-action",U),function(e){e.on("keydown",".widget-top",function(e){e.currentTarget===e.target&&("Enter"!==e.key&&" "!==e.key||(e.preventDefault(),U(e,e.currentTarget)))});var t=function(e){return function(t){t.key===e&&(t.preventDefault(),t.currentTarget.click())}};e.on("keydown",".frm_form_action_settings .frm_duplicate_form_action, .frm_form_action_settings .frm_remove_form_action",t(" ")),e.on("keydown",".frm_form_action_settings .frm_toggle",t("Enter"))}(i),i.on("mouseenter.frm",".frm_bstooltip, .frm_help",function(){jQuery(this).off("mouseenter.frm"),function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=e;(r.hasAttribute("data-toggle")||r.hasAttribute("data-bs-toggle"))&&(r.parentElement.setAttribute("title",r.getAttribute("title")),r.removeAttribute("title"),r.classList.remove("frm_bstooltip"),r.parentElement.classList.add("frm_bstooltip"),r=r.parentElement),jQuery(r).tooltip(),t&&(z(),jQuery(r).tooltip("show"))}(this,!0)}),jQuery(document).on("click","#doaction, #doaction2",function(e){var t="doaction"===this.id?"top":"bottom",r=document.getElementById("bulk-action-selector-".concat(t)),n=document.getElementById("confirm-bulk-delete-".concat(t));if(r&&n){if(l=this,!s&&"bulk_delete"===r.value)return e.preventDefault(),D(n),!1}else l=!1}),jQuery(document).on("click","#frm-confirmed-click",function(e){if(!1!==l&&!e.target.classList.contains("frm-btn-inactive"))return"confirm-bulk-delete"===this.getAttribute("href")?(e.preventDefault(),s=!0,l.click(),!1):void 0}),r(4260).initUpgradeModal(),frmDom.util.documentOn("click","[data-modal-title]",Jn);var d=jQuery(document.getElementById("frm_shortcodediv"));d.length>0&&(jQuery("a.edit-frm_shortcode").on("click",function(){return d.is(":hidden")&&(d.slideDown("fast"),this.style.display="none"),!1}),jQuery(".cancel-frm_shortcode","#frm_shortcodediv").on("click",function(){return d.slideUp("fast"),d.siblings("a.edit-frm_shortcode").show(),!1})),jQuery(document).on("click","#frm-nav-tabs a",W),jQuery(".post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a").on("click",function(){var e=this.classList.contains("frm_show_upgrade_tab");if(!this.classList.contains("frm_noallow")||e)return e&&Xn(this),$(this),!1}),$(jQuery(".starttab a"),"auto"),jQuery(document).on("click","#frm-fid-search-menu a",function(){var e=this.id.replace("fid-","");return jQuery('select[name="fid"]').val(e),Rn(document.getElementById("posts-filter")),!1}),jQuery(".frm_select_box").on("click focus",function(){this.select()}),jQuery(document).on("input search change",".frm-auto-search:not(#frm-form-templates-page #template-search-input)",Ei),jQuery(document).on("focusin click",".frm-auto-search",Si);var f=jQuery(".frm-auto-search");""!==f.val()&&f.trigger("keyup"),FrmFormsConnect.init(),jQuery(document).on("click",".frm-install-addon",pi),jQuery(document).on("click",".frm-activate-addon",_i),jQuery(document).on("click",".frm-solution-multiple",mi),jQuery("button, input[type=submit]").on("click",Oi),document.addEventListener("click",function(e){if("LABEL"===e.target.nodeName){var t=e.target.getAttribute("for");if(t){var r=document.getElementById(t);if(r&&r.nextElementSibling){var n=r.nextElementSibling.querySelector("button.dropdown-toggle.multiselect");n&&setTimeout(function(){return n.click()},0)}}}}),frmAdminBuild.hooks.addFilter("frm_before_embed_modal",function(e,t){var r,n,o=t.element;if("form"!==t.type)return e;var i=o.closest("tr");if(i)r=parseInt(i.querySelector(".column-id").textContent),n=i.querySelector(".column-form_key").textContent;else{r=document.getElementById("form_id").value;var a=document.getElementById("frm_form_key");if(a)n=a.value;else{var l=document.getElementById("frm-previewDrop");l&&(n=l.nextElementSibling.querySelector(".dropdown-item a").getAttribute("href").split("form=")[1])}}return[r,n]}),document.querySelectorAll("#frm-show-fields > li, .frm_grid_container li").forEach(function(e,t){e.addEventListener("click",function(){var e,t,r;t=(null===(e=this.querySelector("li"))||void 0===e?void 0:e.dataset.fid)||this.dataset.fid,(r=document.querySelectorAll("[id^=frm_delete_field_".concat(t,"-]"))).length<2||n(r).slice(1).forEach(function(e,r){e.classList.contains("frm_other_option")||zi(t,e)})})});var u=document.getElementById("frm_small_screen_proceed_button");u&&_(u,function(){var e;null===(e=document.getElementById("frm_small_device_message_container"))||void 0===e||e.remove(),p("small_screen_proceed",new FormData)});var m=document.getElementById("frm_sale_banner"),g=null==m?void 0:m.querySelector(".dismiss");m&&(_(m,function(e){e.target.closest(".dismiss")||(window.location.href=m.getAttribute("data-url"))}),g&&_(g,function(){m.remove();var e=new FormData;p("sale_banner_dismiss",e)}))},buildInit:function(){jQuery("#frm_builder_page").on("mouseup","*:not(.frm-show-box)",Gi),g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return frmDom.util.debounce(e,t)}(ie,10),y=document.getElementById("post-body-content"),v=jQuery(y),jQuery(".frm_field_loading").length&&Ee(jQuery(".frm_field_loading").first().attr("id")),V("ul.frm_sorting"),document.querySelectorAll(".field_type_list > li:not(.frm_show_upgrade):not(.frm_show_update)").forEach(Y),jQuery("ul.field_type_list, .field_type_list li, ul.frm_code_list, .frm_code_list li, .frm_code_list li a, #frm_adv_info #category-tabs li, #frm_adv_info #category-tabs li a").disableSelection(),jQuery(".frm_submit_ajax").on("click",zn),jQuery(".frm_submit_no_ajax").on("click",Un),$n(),jQuery("a.edit-form-status").on("click",Ln),jQuery(".cancel-form-status").on("click",In),jQuery(".save-form-status").on("click",function(){var e=jQuery(document.getElementById("form_change_status")).val();return jQuery('input[name="new_status"]').val(e),jQuery(document.getElementById("form-status-display")).html(e),jQuery(".cancel-form-status").trigger("click"),!1}),jQuery(".frm_form_builder form").first().on("submit",function(){jQuery(".inplace_field").trigger("blur")}),ui(),Dr();var e,t=jQuery(j),r=document.getElementById("frm_form_editor_container");t.on("click",".frm_add_logic_row",Sr),t.on("click",".frm_add_watch_lookup_row",Ir),t.on("change",".frm_get_values_form",Or),t.on("change",".frm_logic_field_opts",Qn),t.on("frm-multiselect-changed",'select[name^="field_options[admin_only_"]',qn),jQuery(document.getElementById("frm-insert-fields")).on("click",".frm_add_field",Se),b.on("click",".frm_clone_field",Be),t.on("blur",'input[id^="frm_calc"]',Xe),t.on("change","input.frm_format_opt, input.frm_max_length_opt",st),t.on("change click","[data-changeme]",at),t.on("click","input.frm_req_field",ct),t.on("click",".frm_mark_unique",ft),t.on("change",".frm_repeat_format",Xr),t.on("change",".frm_repeat_limit",Yr),t.on("change",".frm_js_checkbox_limit",Zr),t.on("input",'input[name^="field_options[add_label_"]',function(){en(this,"add")}),t.on("input",'input[name^="field_options[remove_label_"]',function(){en(this,"remove")}),t.on("change",'select[name^="field_options[data_type_"]',Fr),jQuery(r).on("click",".frm-collapse-page",Mr),jQuery(r).on("click",".frm-collapse-section",zr),t.on("click",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",Rr),t.on("keydown",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),Rr.call(this,e))}),jQuery(r).on("show.bs.dropdown hide.bs.dropdown",ze),t.on("change",".frm_toggle_sep_values",vt),t.on("change",".frm_toggle_image_options",ht),t.on("click",".frm_remove_image_option",Et),t.on("click",".frm_choose_image_box",kt),t.on("change",".frm_hide_image_text",xt),t.on("change",".frm_field_options_image_size",wt),t.on("click",".frm_multiselect_opt",At),b.on("mousedown","input, textarea, select",It),b.on("click","input[type=radio], input[type=checkbox]",It),b.on("click",".frm_delete_field",Tt),b.on("click",".frm_select_field",Ot),jQuery(document).on("click",".frm_delete_field_group",Ft),jQuery(document).on("click",".frm_clone_field_group",Dt),jQuery(document).on("click","#frm_field_group_controls > span:first-child",Mt),jQuery(document).on("click",".frm-row-layout-option",Zt),jQuery(document).on("click",".frm-merge-fields-into-row .frm-row-layout-option",er),jQuery(document).on("click",".frm-custom-field-group-layout",rr),jQuery(document).on("click",".frm-merge-fields-into-row .frm-custom-field-group-layout",or),jQuery(document).on("click",".frm-break-field-group",cr),b.on("click","#frm_field_group_popup .frm_grid_container input",dr),jQuery(document).on("click",".frm-cancel-custom-field-group-layout",fr),jQuery(document).on("click",".frm-save-custom-field-group-layout",mr),b.on("click","ul.frm_sorting",_r),jQuery(document).on("click",".frm-merge-fields-into-row",jr),jQuery(document).on("click",".frm-delete-field-groups",Qr),b.on("click",'.frm-field-action-icons [data-toggle="dropdown"]',function(){this.closest("li.form-field").classList.add("frm-field-settings-open"),jQuery(document).on("click","#frm_builder_page",Oe)}),b.on("mousemove","ul.frm_sorting",Fe),b.on("show.bs.dropdown",".frm-field-action-icons",Pe),jQuery(document).on("show.bs.dropdown","#frm_field_group_controls",He),t.on("click",".frm_single_option a[data-removeid]",qt),t.on("mousedown",".frm_single_option input[type=radio]",Bt),t.on("focusin",".frm_single_option input[type=text]",Ct),t.on("click",".frm_add_opt",pt),t.on("change",".frm_single_option input",rn),t.on("change",".frm_image_id",rn),t.on("change",".frm_toggle_mult_sel",gt),b.on("click",".frm_primary_label",Ur),b.on("click",".frm_description",Wr),b.on("click","li.ui-state-default:not(.frm_noallow)",Vr),b.on("dblclick","li.ui-state-default",Jr),t.on("change",".frm_tax_form_select",tn),t.on("change","select.conf_field",ut),t.on("change",".frm_get_field_selection",xn),t.on("click",".frm-show-inline-modal",Nn),t.on("keydown",".frm-show-inline-modal",function(e){var t=e.key;"Enter"!==t&&" "!==t||(e.preventDefault(),Nn.call(this,e))}),t.on("click",".frm-inline-modal .dismiss",Tn),jQuery(document).on("change","[data-frmchange]",Fn),document.addEventListener("click",On),t.on("change",".frm_include_extras_field",tt),t.on("change",'select[name^="field_options[form_select_"]',Fi),jQuery(document).on("submit","#frm_js_build_form",Go),jQuery(document).on("change","#frm_builder_page input:not(.frm-search-input):not(.frm-custom-grid-size-input), #frm_builder_page select, #frm_builder_page textarea",Ro),ot(),frmDom.util.documentOn("change",".frm_product_price",Di),jQuery(document).on("change",".frmjs_prod_data_type_opt",Mi),jQuery(document).on("focus",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Br),jQuery(document).on("blur",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Nr),frmDom.util.documentOn("click",".frm-show-field-settings",Vr),frmDom.util.documentOn("change","select.frm_format_dropdown, select.frm_phone_type_dropdown",Kr),t.on("keydown",'.frm_single_option input[name^="field_options["], .frm_single_option input[name^="rows_"]',function(e){"Enter"===e.key&&function(e){var t=e.closest(".frm_single_option").parentElement.querySelectorAll('.frm_single_option input[name^="field_options[" ], .frm_single_option input[name^="rows_"]'),r=Array.from(t),n=r.indexOf(e);if(!(n<0)){var o=r.slice(n+1).find(function(e){return null!==e.offsetParent});if(o){o.focus();var i=o.value.length;o.setSelectionRange(i,i)}}}(e.currentTarget)}),!1!==(e=Ni("#frm-bulk-modal","700px"))&&(jQuery(".frm-insert-preset").on("click",_t),jQuery(j).on("click","a.frm-bulk-edit-link",function(t){t.preventDefault();var r="",n=jQuery(this).closest("[data-fid]").data("fid"),o=vn(n),i=Pi(n),a=document.getElementById("frm_field_".concat(n,"_opts"));if(a){var l=a.getElementsByTagName("li");document.getElementById("bulk-field-id").value=n;for(var s=0;s=l.length-1&&(document.getElementById("frm_bulk_options").value=r)}return e.dialog("open"),!1}}),jQuery("#frm-update-bulk-opts").on("click",function(){var t=document.getElementById("bulk-field-id").value;document.getElementById("bulk-option-type").value||(this.classList.add("frm_loading_button"),frmAdminBuild.updateOpts(t,document.getElementById("frm_bulk_options").value,e),Ro())})),Cn(),document.addEventListener("frm_added_field",Cn),qe(),Hi(),An(),frmDom.util.documentOn("change",".frm_show_password_setting_input",function(e){var t=e.target.getAttribute("data-fid"),r=document.getElementById("frm_field_id_".concat(t));r&&r.classList.toggle("frm_disabled_show_password",!e.target.checked)}),document.addEventListener("scroll",Po,!0),document.addEventListener("change",Do),document.querySelector(".frm_form_builder").addEventListener("mousedown",function(e){e.shiftKey&&e.preventDefault()}),wp.hooks.addAction("frmShowedFieldSettings","formidableAdmin",function(e,t){t.querySelectorAll(".frm-collapse-me").forEach(Gr)},9999),frm_admin_js.pricingFieldsModal&&"object"===o(frm_admin_js.pricingFieldsModal)&&M(frm_admin_js.pricingFieldsModal,"550px")},settingsInit:function(){var e=jQuery(document.getElementById("frm_notification_settings"));e.on("click",".frm_email_buttons",ao),e.on("click",".frm_remove_field",lo),e.on("change",".frm_to_row, .frm_from_row",so),e.on("change",".frm_tax_selector",ko),e.on("change","select.frm_single_post_field",yo),e.on("change","select.frm_toggle_post_content",vo),e.on("change","select.frm_dyncontent_opt",ho),e.on("change",".frm_post_type",bo),e.on("click",".frm_add_postmeta_row",Qo),e.on("click",".frm_add_posttax_row",wo),e.on("click",".frm_toggle_cf_opts",Eo),e.on("click",".frm_duplicate_form_action",eo),jQuery(".frm_actions_list").on("click",".frm_active_action",no),jQuery(document).on("frmAfterSearch","#actions-search-input",G),ui(),document.querySelectorAll(".frm_actions_list a[data-actiontype]").forEach(function(e){return co(e.dataset.actiontype)}),jQuery(".frm_submit_settings_btn").on("click",So),$n();var t=jQuery(".frm_form_settings");t.on("click",".frm_add_form_logic",po),t.on("change","input[data-emailkey][data-toggleclass]",go),t.on("click",".frm_already_used",mo),document.addEventListener("click",function(e){var t=e.target;t.closest(".frm_image_preview_wrapper")&&(t.closest(".frm_choose_image_box")?kt.bind(t)(e):t.closest(".frm_remove_image_option")&&Et.bind(t)(e))}),t.on("mouseup","*:not(.frm-show-box)",Gi),jQuery(document.getElementById("no_save")).on("change",function(){this.checked&&!0!==confirm(a.no_save_warning)&&jQuery(this).attr("checked",!1)}),jQuery('select[name="options[edit_action]"]').on("change",Zn);var r=document.getElementById("logged_in");jQuery(r).on("change",function(){this.checked?Ci(".hide_logged_in"):Bi(".hide_logged_in")});var n=jQuery(document.getElementById("frm_cookie_expiration"));jQuery(document.getElementById("frm_single_entry_type")).on("change",function(){"cookie"===this.value?n.fadeIn("slow"):n.fadeOut("slow")});var o=document.getElementById("single_entry");jQuery(o).on("change",function(){this.checked?Ci(".hide_single_entry"):Bi(".hide_single_entry"),this.checked&&"cookie"===jQuery(document.getElementById("frm_single_entry_type")).val()?n.fadeIn("slow"):n.fadeOut("slow")}),jQuery(".hide_save_draft").hide();var i=jQuery(document.getElementById("save_draft"));i.on("change",function(){this.checked?jQuery(".hide_save_draft").fadeIn("slow"):jQuery(".hide_save_draft").fadeOut("slow")}),Gn(i);var l=document.getElementById("editable");jQuery(l).on("change",function(){this.checked?(jQuery(".hide_editable").fadeIn("slow"),Gn(document.getElementById("edit_action"))):(jQuery(".hide_editable").fadeOut("slow"),jQuery(".edit_action_message_box").fadeOut("slow"))}),jQuery(document).on("change","#protect_files",function(){this.checked?jQuery(".hide_protect_files").fadeIn("slow"):jQuery(".hide_protect_files").fadeOut("slow")}),jQuery(document).on("frm-multiselect-changed","#protect_files_role",qn),jQuery(document).on("submit",".frm_form_settings",Uo),jQuery(document).on("change","#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea",Ro),bi(),jQuery(document).on("frm-action-loaded",Zo),frmDom.util.documentOn("change",'.frm_on_submit_type input[type="radio"]',function(e){if(e.target.checked){var t=e.target.closest(".frm_form_action_settings");t.querySelectorAll(".frm_on_submit_dependent_setting:not(.frm_hidden)").forEach(function(e){e.classList.add("frm_hidden")}),t.querySelectorAll(".frm_on_submit_dependent_setting[data-show-if-".concat(e.target.value,"]")).forEach(function(e){e.classList.remove("frm_hidden")}),t.setAttribute("data-on-submit-type",e.target.value)}}),wp.hooks.addAction("frm_reset_fields_updated","formidableAdmin",Wo)},panelInit:function(){jQuery(".frm_wrap, #postbox-container-1").on("click",".frm_insert_code",Lo),jQuery(document).on("change",".frm_insert_val",function(){Io(jQuery(this).data("target"),jQuery(this).val()),jQuery(this).val("")}),jQuery(document).on("click change",'[name="frm-id-key-condition"]',Co),jQuery(document).on("keyup change",".frm-build-logic",No),Yn(),jQuery(document).on("frmElementAdded",function(e,t){Yn(t)}),jQuery(document).on("mousedown",".frm-show-box",Fo);var e=document.getElementById("form_settings_page"),t=document.body.classList.contains("post-type-frm_display"),r=document.getElementById("frm_insert_fields_tab");(e||t||O)&&jQuery(document).on("focusin","form input, form textarea",function(n){var o,i,a;if(n.stopPropagation(),Oo(this),jQuery(this).is(":not(:submit, input[type=button], .frm-search-input, input[type=checkbox])")){if(jQuery(n.target).closest("#frm_adv_info").length)return;if(e||O)o=jQuery("#frm_html_tab"),jQuery(this).closest("#html_settings").length>0?(o.show(),o.siblings().hide(),jQuery("#frm_html_tab a").trigger("click"),void 0===(a=this.id)||a.includes("-search-input")||(jQuery("#frm-adv-info-tab").attr("data-fills",a.trim()),this.classList.contains("field_custom_html")&&(a="field_custom_html"),jQuery.inArray(a,["after_html","before_html","submit_html","field_custom_html"])>=0&&(jQuery(".frm_code_list li:not(.show_".concat(a,")")).addClass("frm_hidden"),jQuery(".frm_code_list li.show_".concat(a)).removeClass("frm_hidden")))):((i=jQuery(".frm-category-tabs li"))[0]&&(i[0].style.display=""),r.click(),o.hide(),o.siblings().show());else if(t){var l=new CustomEvent("frm_legacy_views_handle_field_focus");l.frmData={idAttrValue:this.id},document.dispatchEvent(l)}}}),jQuery(".frm_wrap, #postbox-container-1").on("mousedown","#frm_adv_info a, .frm_field_list a",function(e){e.preventDefault()});var n=jQuery("#frm_adv_info");n.on("click",".subsubsub a.frmids",function(e){Yo("frmids",e)}),n.on("click",".subsubsub a.frmkeys",function(e){Yo("frmkeys",e)})},inboxInit:function(){var e;jQuery(".frm_inbox_dismiss").on("click",function(e){var t=this.parentNode.parentNode,r=t.getAttribute("data-message"),n=this.getAttribute("href"),o=t.cloneNode(!0),i=document.querySelector(".frm-dismissed-inbox-messages");if("free_templates"!==r||this.classList.contains("frm_inbox_dismiss")){e.preventDefault();var a={action:"frm_inbox_dismiss",key:r,nonce:frmGlobal.nonce},l="frm_inbox_slide_in"===t.id;l&&(t.classList.remove("s11-fadein"),t.classList.add("s11-fadeout"),t.addEventListener("animationend",function(){return t.remove()},{once:!0})),Ii(a,function(){if(!l)return"#"!==n?(window.location=n,!0):void qi(t,function(){var e;i&&(o.classList.remove("frm-fade"),null===(e=o.querySelector(".frm-inbox-message-heading .frm_inbox_dismiss"))||void 0===e||e.remove(),i.append(o)),1===t.parentNode.querySelectorAll(".frm-inbox-message-container").length&&(document.getElementById("frm_empty_inbox").classList.remove("frm_hidden"),t.parentNode.closest(".frm-active").classList.add("frm-empty-inbox"),yi()),t.remove()})})}}),!1===(null===(e=document.getElementById("frm_empty_inbox"))||void 0===e?void 0:e.classList.contains("frm_hidden"))&&yi()},solutionInit:function(){jQuery(document).on("submit","#frm-new-template",wi)},styleInit:function(){var e=jQuery(".frm_image_preview_wrapper");e.on("click",".frm_choose_image_box",kt),e.on("click",".frm_remove_image_option",Et),wp.hooks.doAction("frm_style_editor_init")},customCSSInit:function(){console.warn("Calling frmAdminBuild.customCSSInit is deprecated.")},globalSettingsInit:function(){jQuery(document).on("click","[data-frmuninstall]",ei),ui();var e=document.getElementById("licenses_settings");e&&jQuery(e).on("click",".edd_frm_save_license",ti),jQuery(document).on("click","#frm-new-template button",ji),jQuery("#frm-dismissable-cta .dismiss").on("click",function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_lite_settings_upgrade",nonce:frmGlobal.nonce}),jQuery(".settings-lite-cta").remove()});var t=document.getElementById("frm_re_type");t&&t.addEventListener("change",xi),document.querySelector(".frm_captchas").addEventListener("change",function(e){var t,r=null===(t=document.querySelector('.frm_captchas input[checked="checked"]'))||void 0===t?void 0:t.value,n=e.target.value!==r;document.querySelector(".captcha_settings .frm_note_style").classList.toggle("frm_hidden",!n)}),frmDom.util.documentOn("submit",".frm_settings_form",function(){x=0});var r=document.getElementById("manage_styles_settings");r&&r.addEventListener("change",function(e){var t=e.target;"SELECT"===t.nodeName&&t.dataset.name&&!t.getAttribute("name")&&t.setAttribute("name",t.dataset.name)});var n=document.getElementById("payments_settings"),o=null==n?void 0:n.querySelectorAll('[name="frm_payment_section"]');o&&o.forEach(function(e){e.addEventListener("change",function(){if(e.checked){var t=n.querySelector('label[for="'.concat(e.id,'"]'));t&&t.setAttribute("aria-selected","true"),o.forEach(function(t){if(t!==e){var r=n.querySelector('label[for="'.concat(t.id,'"]'));r&&r.setAttribute("aria-selected","false")}})}})})},exportInit:function(){jQuery(".frm_form_importer").on("submit",ri),jQuery(document.getElementById("frm_export_xml")).on("submit",oi),jQuery("#frm_export_xml input, #frm_export_xml select").on("change",ii),jQuery('input[name="frm_import_file"]').on("change",ai),document.querySelector('select[name="format"]').addEventListener("change",si),jQuery('input[name="frm_export_forms[]"]').on("click",fi),ui(),jQuery(".frm-feature-banner .dismiss").on("click",function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_dismiss_migrator",plugin:this.id,nonce:frmGlobal.nonce}),this.parentElement.remove()}),di(li()),document.querySelector("#frm-export-select-all").addEventListener("change",function(e){document.querySelectorAll('[name="frm_export_forms[]"]').forEach(function(t){t.checked=e.target.checked})})},inboxBannerInit:function(){var e=document.getElementById("frm_banner");if(e){var t=e.querySelector(".frm-banner-dismiss");document.addEventListener("click",function(r){r.target===t&&Ii({action:"frm_inbox_dismiss",key:e.dataset.key,nonce:frmGlobal.nonce},function(){jQuery(e).fadeOut(400,function(){e.remove()})})})}},updateOpts:function(e,t,r){var n=vn(e),o=Pi(e)?"frm_bulk_products":"frm_import_options";jQuery.ajax({type:"POST",url:ajaxurl,data:{action:o,field_id:e,opts:t,separate:n,nonce:frmGlobal.nonce},success:function(t){document.getElementById("frm_field_".concat(e,"_opts")).innerHTML=t,wp.hooks.doAction("frm_after_bulk_edit_opts",e),an(e),void 0!==r&&(r.dialog("close"),document.getElementById("frm-update-bulk-opts").classList.remove("frm_loading_button"))}})},triggerRemoveLogic:function(e,t){jQuery("#frm_logic_".concat(e,"_").concat(t," .frm_remove_tag")).trigger("click")},downloadXML:function(e,t,r){var n="".concat(ajaxurl,"?action=frm_").concat(e,"_xml&ids=").concat(t);null!==r&&(n="".concat(n,"&is_template=").concat(r)),location.href=n},hooks:{applyFilters:function(e){for(var t,r=arguments.length,n=new Array(r>1?r-1:0),o=1;o1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(r){var n=k,o=0;"summary"===e&&(o=b.children('li[data-type="break"]').length>0?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:Object.assign(pe(e,0,n,o),{field_options:t}),success:function(t){r(t),setTimeout(function(){En(),$e(t,!0);var r=ve(t);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:r,fieldType:e,form_id:n})},10)},error:be})})},confirmLinkClick:D,handleInsertFieldByDraggingResponse:ye,handleAddFieldClickResponse:Ie,syncLayoutClasses:le,moveFieldSettings:io,maybeCollapseSettings:Rr}},window.frmAdminBuild=frmAdminBuildJS(),jQuery(document).ready(function(){var e;frmAdminBuild.init(),document.querySelectorAll(".frm-dropdown-menu").forEach(function(e){e.classList.add("dropdown-menu");var t,r,n=e.querySelector(".frm-dropdown-toggle");n&&(n.hasAttribute("role")||n.setAttribute("role","button"),n.hasAttribute("tabindex")||n.setAttribute("tabindex",0)),"UL"===e.tagName&&(r=(r=(r=(r=(r=(r=(t=e).outerHTML).replace("","")).replaceAll("",'')).replaceAll('
"," "),t.outerHTML=r)}),null===(e=document.querySelector(".preview.dropdown .frm-dropdown-toggle"))||void 0===e||e.setAttribute("data-bs-toggle","dropdown"),document.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))})}),window.frm_show_div=function(e,t,r,n){t==r?jQuery(n+e).fadeIn("slow").css("visibility","visible"):jQuery(n+e).fadeOut("slow")},window.frmCheckAll=function(e,t){jQuery('input[name^="'.concat(t,'"]')).prop("checked",Boolean(e))},window.frmCheckAllLevel=function(e,t,r){jQuery(".frm_catlevel_".concat(r)).children(".frm_checkbox").children("label").children('input[name^="'.concat(t,'"]')).prop("checked",Boolean(e))},window.frmGetFieldValues=function(e,t,r,n,o,i){e&&jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_get_field_values¤t_field=".concat(t,"&field_id=").concat(e,"&name=").concat(o,"&t=").concat(n,"&form_action=").concat(jQuery('input[name="frm_action"]').val(),"&nonce=").concat(frmGlobal.nonce),success:function(e){document.getElementById("frm_show_selected_values_".concat(t,"_").concat(r)).innerHTML=e,"function"==typeof i&&i()}})},window.frmImportCsv=function(e){var t="";"undefined"!=typeof __FRMURLVARS&&(t=__FRMURLVARS),jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_import_csv&nonce=".concat(frmGlobal.nonce,"&frm_skip_cookie=1").concat(t),success:function(t){var r=jQuery(".frm_admin_progress_bar").attr("aria-valuemax"),n=r-t,o=n/r*100;jQuery(".frm_admin_progress_bar").css("width","".concat(o,"%")).attr("aria-valuenow",n),parseInt(t,10)>0?(jQuery(".frm_csv_remaining").html(t),frmImportCsv(e)):(jQuery(document.getElementById("frm_import_message")).html(frm_admin_js.import_complete),setTimeout(function(){location.href="?page=formidable-entries&frm_action=list&form=".concat(e,"&import-message=1")},2e3))}})}})();
\ No newline at end of file
+(()=>{var e={65:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(8793),o=r(1323);function i(e){var t=(0,n.A)(e);return function(e){return(0,o.A)(t,e)}}},1323:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,r){if(e)throw t;return r}};function o(e,t){var r,o,i,a,l,s,c=[];for(r=0;r{"use strict";r.d(t,{A:()=>o});var n=r(65);function o(e){var t=(0,n.A)(e);return function(e){return+t({n:e})}}},8793:(e,t,r)=>{"use strict";var n,o,i,a;function l(e){for(var t,r,l,s,c=[],d=[];t=e.match(a);){for(r=t[0],(l=e.substr(0,t.index).trim())&&c.push(l);s=d.pop();){if(i[r]){if(i[r][0]===s){r=i[r][1]||r;break}}else if(o.indexOf(s)>=0||n[s]l}),n={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},o=["(","?"],i={")":["("],":":["?","?:"]},a=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/},7521:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(6956),o=r(7395);const i=function(e,t){return function(r,i,a){var l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10,s=e[t];if((0,o.A)(r)&&(0,n.A)(i))if("function"==typeof a)if("number"==typeof l){var c={callback:a,priority:l,namespace:i};if(s[r]){var d,f=s[r].handlers;for(d=f.length;d>0&&!(l>=f[d-1].priority);d--);d===f.length?f[d]=c:f.splice(d,0,c),s.__current.forEach(function(e){e.name===r&&e.currentIndex>=d&&e.currentIndex++})}else s[r]={handlers:[c],runs:0};"hookAdded"!==r&&e.doAction("hookAdded",r,i,a,l)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}}},11:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){return function(){var r,n,o=e[t];return null!==(r=null===(n=o.__current[o.__current.length-1])||void 0===n?void 0:n.name)&&void 0!==r?r:null}}},5375:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7395);const o=function(e,t){return function(r){var o=e[t];if((0,n.A)(r))return o[r]&&o[r].runs?o[r].runs:0}}},3561:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){return function(r){var n=e[t];return void 0===r?void 0!==n.__current[0]:!!n.__current[0]&&r===n.__current[0].name}}},8830:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){return function(r,n){var o=e[t];return void 0!==n?r in o&&o[r].handlers.some(function(e){return e.namespace===n}):r in o}}},7765:(e,t,r)=>{"use strict";r.d(t,{A:()=>u});var n=r(3029),o=r(7521),i=r(4194),a=r(8830),l=r(6763),s=r(11),c=r(3561),d=r(5375),f=function e(){(0,n.A)(this,e),this.actions=Object.create(null),this.actions.__current=[],this.filters=Object.create(null),this.filters.__current=[],this.addAction=(0,o.A)(this,"actions"),this.addFilter=(0,o.A)(this,"filters"),this.removeAction=(0,i.A)(this,"actions"),this.removeFilter=(0,i.A)(this,"filters"),this.hasAction=(0,a.A)(this,"actions"),this.hasFilter=(0,a.A)(this,"filters"),this.removeAllActions=(0,i.A)(this,"actions",!0),this.removeAllFilters=(0,i.A)(this,"filters",!0),this.doAction=(0,l.A)(this,"actions"),this.applyFilters=(0,l.A)(this,"filters",!0),this.currentAction=(0,s.A)(this,"actions"),this.currentFilter=(0,s.A)(this,"filters"),this.doingAction=(0,c.A)(this,"actions"),this.doingFilter=(0,c.A)(this,"filters"),this.didAction=(0,d.A)(this,"actions"),this.didFilter=(0,d.A)(this,"filters")};const u=function(){return new f}},4194:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(6956),o=r(7395);const i=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(i,a){var l=e[t];if((0,o.A)(i)&&(r||(0,n.A)(a))){if(!l[i])return 0;var s=0;if(r)s=l[i].handlers.length,l[i]={runs:l[i].runs,handlers:[]};else for(var c=l[i].handlers,d=function(e){c[e].namespace===a&&(c.splice(e,1),s++,l.__current.forEach(function(t){t.name===i&&t.currentIndex>=e&&t.currentIndex--}))},f=c.length-1;f>=0;f--)d(f);return"hookRemoved"!==i&&e.doAction("hookRemoved",i,a),s}}}},6763:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function(n){var o=e[t];o[n]||(o[n]={handlers:[],runs:0}),o[n].runs++;for(var i=o[n].handlers,a=arguments.length,l=new Array(a>1?a-1:0),s=1;s{"use strict";r.d(t,{se:()=>n});var n=(0,r(7765).A)();n.addAction,n.addFilter,n.removeAction,n.removeFilter,n.hasAction,n.hasFilter,n.removeAllActions,n.removeAllFilters,n.doAction,n.applyFilters,n.currentAction,n.currentFilter,n.doingAction,n.doingFilter,n.didAction,n.didFilter,n.actions,n.filters},7395:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e){return"string"!=typeof e||""===e?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(e)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(e)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)}},6956:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const n=function(e){return"string"!=typeof e||""===e?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(e)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)}},772:(e,t,r)=>{"use strict";r.d(t,{h:()=>c});var n=r(4467),o=r(5397);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function a(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"default";n.data[t]=a(a(a({},l),n.data[t]),e),n.data[t][""]=a(a({},l[""]),n.data[t][""])},f=function(e,t){d(e,t),c()},u=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default",t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;return n.data[e]||d(void 0,e),n.dcnpgettext(e,t,r,o,i)},m=function(){return arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default"},_=function(e,t,n){var o=u(n,t,e);return r?(o=r.applyFilters("i18n.gettext_with_context",o,e,t,n),r.applyFilters("i18n.gettext_with_context_"+m(n),o,e,t,n)):o};if(e&&f(e,t),r){var p=function(e){s.test(e)&&c()};r.addAction("hookAdded","core/i18n",p),r.addAction("hookRemoved","core/i18n",p)}return{getLocaleData:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"default";return n.data[e]},setLocaleData:f,resetLocaleData:function(e,t){n.data={},n.pluralForms={},f(e,t)},subscribe:function(e){return i.add(e),function(){return i.delete(e)}},__:function(e,t){var n=u(t,void 0,e);return r?(n=r.applyFilters("i18n.gettext",n,e,t),r.applyFilters("i18n.gettext_"+m(t),n,e,t)):n},_x:_,_n:function(e,t,n,o){var i=u(o,void 0,e,t,n);return r?(i=r.applyFilters("i18n.ngettext",i,e,t,n,o),r.applyFilters("i18n.ngettext_"+m(o),i,e,t,n,o)):i},_nx:function(e,t,n,o,i){var a=u(i,o,e,t,n);return r?(a=r.applyFilters("i18n.ngettext_with_context",a,e,t,n,o,i),r.applyFilters("i18n.ngettext_with_context_"+m(i),a,e,t,n,o,i)):a},isRTL:function(){return"rtl"===_("ltr","text direction")},hasTranslation:function(e,t,o){var i,a,l=t?t+""+e:e,s=!(null===(i=n.data)||void 0===i||null===(a=i[null!=o?o:"default"])||void 0===a||!a[l]);return r&&(s=r.applyFilters("i18n.has_translation",s,e,t,o),s=r.applyFilters("i18n.has_translation_"+m(o),s,e,t,o)),s}}}},5839:(e,t,r)=>{"use strict";r.d(t,{__:()=>a});var n=r(772),o=r(2133),i=(0,n.h)(void 0,void 0,o.se),a=(i.getLocaleData.bind(i),i.setLocaleData.bind(i),i.resetLocaleData.bind(i),i.subscribe.bind(i),i.__.bind(i));i._x.bind(i),i._n.bind(i),i._nx.bind(i),i.isRTL.bind(i),i.hasTranslation.bind(i)},9575:(e,t,r)=>{"use strict";r.d(t,{__:()=>n.__}),r(181),r(772);var n=r(5839)},181:(e,t,r)=>{"use strict";var n=r(8616),o=r.n(n);r(7604),o()(console.error)},1105:(e,t,r)=>{"use strict";r.r(t),r.d(t,{addonError:()=>u,afterAddonInstall:()=>f,extractErrorFromAddOnResponse:()=>d,toggleAddonState:()=>c});var n=r(9575);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,l=[],s=!0,c=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=i.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(e){c=!0,o=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return i(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?i(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r5&&void 0!==arguments[5]?arguments[5]:"frm_activate_addon",d=frm_admin_js,f=document.querySelectorAll(".frm-addon-status");f.forEach(function(t){t.textContent=e,t.style.display="block"}),t.css({opacity:"0"}),document.querySelectorAll(".frm-oneclick").forEach(function(e){e.style.display="none"}),function(){var e=document.getElementById("frm_upgrade_modal");if(e){e.classList.add("frm-success");var t=e.querySelector(".frm-upgrade-message");if(t){var r=t.querySelector("img");t.replaceChildren((0,n.__)("Great! Everything's ready to go!","formidable"),document.createElement("br"),(0,n.__)("You just need to refresh the builder so the new field becomes available.","formidable")),r&&t.append(r)}var o=document.querySelector(".frm-addon-status");o&&(o.textContent="");var i,a=e.querySelector(".frm-circled-icon");if(a)a.classList.add("frm-circled-icon-green"),null===(i=a.querySelector("svg"))||void 0===i||i.replaceWith(s({href:"#frm_checkmark_icon"}))}}();var u={frm_activate_addon:{class:"frm-addon-active",message:d.active},frm_deactivate_addon:{class:"frm-addon-installed",message:d.installed},frm_uninstall_addon:{class:"frm-addon-not-installed",message:d.not_installed}};u.frm_install_addon=u.frm_activate_addon;var _=o(r,1)[0];_&&(_.textContent=u[c].message);var p=o(i,1)[0].parentElement;p.classList.remove("frm-addon-not-installed","frm-addon-installed","frm-addon-active"),p.classList.add(u[c].class),o(t,1)[0].classList.remove("frm_loading_button"),document.querySelectorAll(".frm-admin-page-import, #frm-admin-smtp, #frm-welcome").length>0?window.location.reload():["settings","form_builder"].includes(a)&&f.forEach(function(e){var t=null!==e.closest("#frm_upgrade_modal");e.append(function(e,t){var r,o=[m(e)];return t&&o.push(((r=document.createElement("a")).setAttribute("href","#"),r.classList.add("button","button-secondary","frm-button-secondary","dismiss"),r.textContent=(0,n.__)("Not Now","formidable"),r)),l({className:"frm-save-and-reload-options",children:o})}(a,t))})}function u(e,t,r){e.form?(jQuery(".frm-inline-error").remove(),r.closest(".frm-card").html(e.form).css({padding:5}).find("#upgrade").attr("rel",r.attr("rel")).on("click",_)):(t.append('")),r.removeClass("frm_loading_button"),jQuery(".frm-addon-error").delay(4e3).fadeOut())}function m(e){var t=document.createElement("button");return t.classList.add("frm-save-and-reload","button","button-primary","frm-button-primary"),t.textContent=(0,n.__)("Save and Reload","formidable"),t.addEventListener("click",function(){var t;"form_builder"===e?((t=document.getElementById("frm_submit_side_top")).classList.contains("frm_submit_ajax")&&t.setAttribute("data-new-addon-installed",!0),t.click()):"settings"===e&&function(){var e=document.getElementById("form_settings_page");if(e){var t=e.querySelector("form.frm_form_settings");null!==t&&(wp.hooks.doAction("frm_reset_fields_updated"),t.submit())}}()}),t}function _(e){e.preventDefault();var t=jQuery(this),r=t.parent().parent(),n=t.attr("rel");t.addClass("frm_loading_button"),jQuery.ajax({url:ajaxurl,type:"POST",async:!0,cache:!1,dataType:"json",data:{action:"frm_install_addon",nonce:frmAdminJs.nonce,plugin:n,hostname:r.find("#hostname").val(),username:r.find("#username").val(),password:r.find("#password").val()},success:function(e){var n,o,i=d(e=null!==(n=null===(o=e)||void 0===o?void 0:o.data)&&void 0!==n?n:e);i?u(i,r,t):f(e,t,message,r)},error:function(){t.removeClass("frm_loading_button")}})}},4260:(e,t,r)=>{"use strict";r.r(t),r.d(t,{addOneClick:()=>i,initModal:()=>a,initUpgradeModal:()=>l});var n=r(9575),o=frmDom.svg;function i(e,t,r){var i;if("modal"===t)i=document.getElementById("frm_upgrade_modal");else{if("tab"!==t)return;i=document.getElementById(e.getAttribute("href").substr(1))}var a,l=i.querySelector(".frm-oneclick"),s=i.querySelector(".frm-upgrade-message"),c=i.querySelector(".frm-upgrade-link"),d=i.querySelector(".frm-oneclick-button"),f=i.querySelector(".frm-addon-status"),u=e.getAttribute("data-oneclick"),m=e.getAttribute("data-message"),_="block",p="block",g="none",y=i.querySelector(".frm-circled-icon");y&&(y.classList.remove("frm-circled-icon-green"),null===(a=y.querySelector("svg"))||void 0===a||a.replaceWith(o({href:"#frm_filled_lock_icon"})));var v=i.querySelector(".frm-learn-more");if(v&&(e.dataset.learnMore?(v.href=e.dataset.learnMore,v.style.display=""):v.style.display="none"),null!==l&&null!==d&&void 0!==u&&u){null===m&&(p="none"),_="none",g="block",u=JSON.parse(u),d.className=d.className.replace(" frm-install-addon","").replace(" frm-activate-addon",""),d.className="".concat(d.className," ").concat(u.class),d.rel=u.url,l.textContent=(0,n.__)("This plugin is not activated. Would you like to activate it now?","formidable"),d.textContent=(0,n.__)("Activate","formidable");var h=e.querySelector("use");h&&(null==y||y.querySelector("svg").replaceWith(o({href:h.getAttribute("href")||h.getAttribute("xlink:href"),classList:["frm_svg32"]})))}m||(m=s.getAttribute("data-default")),void 0!==r&&(m=m.replace(' ',r)),s.innerHTML=m,e.dataset.upsellImage&&s.append(frmDom.img({src:e.dataset.upsellImage,alt:e.dataset.upgrade})),c.href=function(e,t){var r=e.getAttribute("data-link");return null!=r&&""!==r||(r=t.getAttribute("data-default")),r}(e,c),f.style.display="none",l&&(l.style.display=g),d&&(d.style.display="block"===g?"inline-block":g),s.style.display=p,c.style.display="block"===_?"inline-block":_;var b=c.closest(".frm-upgrade-modal-actions");b&&(b.style.display="block"===_?"flex":_)}function a(e,t){var r=jQuery(e);if(!r.length)return!1;void 0===t&&(t="552px");var n={dialogClass:"frm-dialog",modal:!0,autoOpen:!1,closeOnEscape:!0,width:t,resizable:!1,draggable:!1,open:function(){var e,t;jQuery(".ui-dialog-titlebar").addClass("frm_hidden").removeClass("ui-helper-clearfix"),jQuery("#wpwrap").addClass("frm_overlay"),jQuery(".frm-dialog").removeClass("ui-widget ui-widget-content ui-corner-all"),r.removeClass("ui-dialog-content ui-widget-content"),e=r,t=function(){e.dialog("close")},jQuery(".ui-widget-overlay").on("click",t),e.on("click","a.dismiss",t)},close:function(){jQuery("#wpwrap").removeClass("frm_overlay"),jQuery(".spinner").css("visibility","hidden"),this.removeAttribute("data-option-type");var e=document.getElementById("bulk-option-type");e&&(e.value="")}};return r.dialog(n),r}function l(){var e=a("#frm_upgrade_modal");function t(t){var r,o,a;if((r=t.target).classList){var l=r.classList.contains("frm_show_expired_modal")||null!==r.querySelector(".frm_show_expired_modal")||r.closest(".frm_show_expired_modal");if("change"===t.type&&r.classList.contains("frm_select_with_upgrade")){var s,c=r.options[r.selectedIndex];null!=c&&null!==(s=c.dataset)&&void 0!==s&&s.upgrade&&(r=c)}if(!r.dataset.upgrade){var d=r.closest("[data-upgrade]");if(!d){if(!(d=r.closest(".frm_field_box")))return;r.dataset.upgrade=""}r=d}if(l)wp.hooks.doAction("frm_show_expired_modal",r);else{var f=r.dataset.upgrade;if(f&&!r.classList.contains("frm_show_upgrade_tab")){t.preventDefault();var u=e.get(0);u.classList.remove("frm-success");var m=u.querySelector(".frm_lock_icon");m&&(m.style.display="block",m.classList.remove("frm_lock_open_icon"),m.querySelector("use").setAttribute("href","#frm_lock_icon"));var _="frm_upgrade_modal_image",p=document.getElementById(_);p&&p.remove(),r.dataset.image&&m&&(m.style.display="none",m.parentNode.insertBefore(frmDom.img({id:_,src:"".concat(frmGlobal.url,"/images/").concat(r.dataset.image)}),m));var g=u.querySelector(".license-level");g&&(g.textContent=function(e){return e.dataset.requires?e.dataset.requires:"Pro"}(r)),i(r,"modal",f);var y=u.querySelector(".frm_are_not_installed");y.style.display=r.dataset.image||r.dataset.oneclick?"none":"inline-block",y.textContent=y.dataset.default,u.querySelector(".frm-upgrade-modal-title-prefix").style.display=r.dataset.oneclick?"inline":"none",u.querySelector(".frm_feature_label").textContent=f,u.querySelector(".frm-upgrade-modal-title-suffix").style.display="none",u.querySelector("h2").style.display="block",e.dialog("open");var v=u.querySelector(".button-primary:not(.frm-oneclick-button)");o=v.getAttribute("href").replace(/(medium=)[a-z_-]+/gi,"$1".concat(r.getAttribute("data-medium"))),null===(a=r.getAttribute("data-content"))&&(a=""),o=o.replace(/(content=)[a-z_-]+/gi,"$1".concat(a)),v.setAttribute("href",o),r.classList.contains("frm_show_update")&&function(e){var t=e.querySelector(".frm-upgrade-modal-title-prefix");t&&(t.style.display="none");var r=e.querySelector(".frm_are_not_installed");r&&(r.textContent=(0,n.__)("require an update","formidable"),r.style.display="");var o=e.querySelector(".frm-oneclick");o&&(o.style.display="none");var i=e.querySelector(".frm-oneclick-button");i&&(i.textContent=(0,n.__)("Update Now","formidable"))}(u)}}}}!1!==e&&(document.addEventListener("click",t),frmDom.util.documentOn("change","select.frm_select_with_upgrade",t))}},8616:e=>{e.exports=function(e,t){var r,n,o=0;function i(){var i,a,l=r,s=arguments.length;e:for(;l;){if(l.args.length===arguments.length){for(a=0;a{var n;!function(){"use strict";var o={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function i(e){return function(e,t){var r,n,a,l,s,c,d,f,u,m=1,_=e.length,p="";for(n=0;n<_;n++)if("string"==typeof e[n])p+=e[n];else if("object"==typeof e[n]){if((l=e[n]).keys)for(r=t[m],a=0;a=0),l.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,l.width?parseInt(l.width):0);break;case"e":r=l.precision?parseFloat(r).toExponential(l.precision):parseFloat(r).toExponential();break;case"f":r=l.precision?parseFloat(r).toFixed(l.precision):parseFloat(r);break;case"g":r=l.precision?String(Number(r.toPrecision(l.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=l.precision?r.substring(0,l.precision):r;break;case"t":r=String(!!r),r=l.precision?r.substring(0,l.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=l.precision?r.substring(0,l.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=l.precision?r.substring(0,l.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}o.json.test(l.type)?p+=r:(!o.number.test(l.type)||f&&!l.sign?u="":(u=f?"+":"-",r=r.toString().replace(o.sign,"")),c=l.pad_char?"0"===l.pad_char?"0":l.pad_char.charAt(1):" ",d=l.width-(u+r).length,s=l.width&&d>0?c.repeat(d):"",p+=l.align?u+r+s:"0"===c?u+s+r:s+u+r)}return p}(function(e){if(l[e])return l[e];for(var t,r=e,n=[],i=0;r;){if(null!==(t=o.text.exec(r)))n.push(t[0]);else if(null!==(t=o.modulo.exec(r)))n.push("%");else{if(null===(t=o.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){i|=1;var a=[],s=t[2],c=[];if(null===(c=o.key.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(a.push(c[1]);""!==(s=s.substring(c[0].length));)if(null!==(c=o.key_access.exec(s)))a.push(c[1]);else{if(null===(c=o.index_access.exec(s)))throw new SyntaxError("[sprintf] failed to parse named argument key");a.push(c[1])}t[2]=a}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}r=r.substring(t[0].length)}return l[e]=n}(e),arguments)}function a(e,t){return i.apply(null,[e].concat(t||[]))}var l=Object.create(null);"undefined"!=typeof window&&(window.sprintf=i,window.vsprintf=a,void 0===(n=function(){return{sprintf:i,vsprintf:a}}.call(t,r,t,e))||(e.exports=n))}()},5397:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(1364),o={contextDelimiter:"",onMissingKey:null};function i(e,t){var r;for(r in this.data=e,this.pluralForms={},this.options={},o)this.options[r]=void 0!==t&&r in t?t[r]:o[r]}i.prototype.getPluralForm=function(e,t){var r,o,i,a=this.pluralForms[e];return a||("function"!=typeof(i=(r=this.data[e][""])["Plural-Forms"]||r["plural-forms"]||r.plural_forms)&&(o=function(e){var t,r,n;for(t=e.split(";"),r=0;r{"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}r.d(t,{A:()=>n})},4467:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(9922);function o(e,t,r){return(t=(0,n.A)(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},2327:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(2284);function o(e,t){if("object"!=(0,n.A)(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=(0,n.A)(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}},9922:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var n=r(2284),o=r(2327);function i(e){var t=(0,o.A)(e,"string");return"symbol"==(0,n.A)(t)?t:t+""}},2284:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}r.d(t,{A:()=>n})}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}function n(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||a(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}function i(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=a(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,l=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return l=e.done,e},e:function(e){s=!0,i=e},f:function(){try{l||null==r.return||r.return()}finally{if(s)throw i}}}}function a(e,t){if(e){if("string"==typeof e)return l(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?l(e,t):void 0}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},window.FrmFormsConnect=window.FrmFormsConnect||function(e,t,r){var n={messageBox:null,reset:null,setElements:function(){n.messageBox=e.querySelector(".frm_pro_license_msg"),n.reset=e.getElementById("frm_reconnect_link")}},o={init:function(){n.setElements(),r(e.getElementById("frm_deauthorize_link")).on("click",o.deauthorize),r(".frm_authorize_link").on("click",o.authorize),r(".frm-dashboard-license-options").on("click","#frm_deauthorize_link",o.deauthorize),r(".frm-dashboard-license-options").on("click","#frm_reconnect_link",o.reauthorize),null!==n.reset&&r(n.reset).on("click",o.reauthorize)},authorize:function(){var t=this,n=this.getAttribute("data-plugin"),i=e.getElementById("edd_".concat(n,"_license_key")),a=i.value,l=e.getElementById("proplug-wpmu");this.classList.add("frm_loading_button"),l=l&&l.checked?1:0,r.ajax({type:"POST",url:ajaxurl,dataType:"json",data:{action:"frm_addon_activate",license:a,plugin:n,wpmu:l,nonce:frmGlobal.nonce},success:function(e){o.afterAuthorize(e,i),t.classList.remove("frm_loading_button")}})},afterAuthorize:function(e,t){!0===e.success&&(t.value="•••••••••••••••••••"),wp.hooks.doAction("frm_after_authorize",e),o.showMessage(e)},showProgress:function(e){null===n.messageBox&&n.setElements();var t=n.messageBox;null!==t&&(!0===e.success?(t.classList.remove("frm_error_style"),t.classList.add("frm_message","frm_updated_message")):(t.classList.add("frm_error_style"),t.classList.remove("frm_message","frm_updated_message")),t.classList.remove("frm_hidden"),t.innerHTML=e.message)},showMessage:function(r){null===n.messageBox&&n.setElements();var i=n.messageBox;!0===r.success&&(o.showAuthorized(!0),o.showInlineSuccess(),wp.hooks.doAction("frmAdmin.afterLicenseAuthorizeSuccess",{msg:r})),o.showProgress(r),""!==r.message&&(setTimeout(function(){i.innerHTML="",i.classList.add("frm_hidden"),i.classList.remove("frm_error_style","frm_message","frm_updated_message")},1e4),e.querySelector(".frm-admin-page-dashboard")&&setTimeout(function(){t.location.reload()},1e3))},showAuthorized:function(t){var r=t?"unauthorized":"authorized",n=t?"authorized":"unauthorized",o=e.querySelectorAll(".frm_".concat(r,"_box"));o.length&&o.forEach(function(e){e.className=e.className.replace("frm_".concat(r,"_box"),"frm_".concat(n,"_box"))})},showInlineSuccess:function(){var t=e.querySelectorAll(".frm-confirm-msg [data-success]");t.length&&t.forEach(function(e){e.innerHTML=frmAdminBuild.purifyHtml(e.getAttribute("data-success"))})},reauthorize:function(){return this.innerHTML=' ',r.ajax({type:"POST",url:ajaxurl,dataType:"json",data:{action:"frm_reset_cache",plugin:"formidable_pro",nonce:frmGlobal.nonce},success:function(e){n.reset.textContent=e.message,"1"===n.reset.getAttribute("data-refresh")&&t.location.reload()}}),!1},deauthorize:function(){if(!confirm(frmGlobal.deauthorize))return!1;var t=this.getAttribute("data-plugin"),n=e.getElementById("edd_".concat(t,"_license_key")),i=n.value,a=this;return this.innerHTML=' ',r.ajax({type:"POST",url:ajaxurl,data:{action:"frm_addon_deactivate",license:i,plugin:t,nonce:frmGlobal.nonce},success:function(){o.showAuthorized(!1),n.value="",a.replaceWith("Disconnected"),wp.hooks.doAction("frmAdmin.afterLicenseDeauthorizeSuccess",{})}}),!1}};return o}(document,window,jQuery),window.frmAdminBuildJS=function(){var e,t,a=frm_admin_js,l=frmDom,s=l.tag,c=l.div,d=l.span,f=l.a,u=l.svg,m=l.img,_=frmDom.util.onClickPreventDefault,p=frmDom.ajax.doJsonPost;a.contextualShortcodes=(t=null===(e=document.getElementById("frm_adv_info"))||void 0===e?void 0:e.dataset.contextualShortcodes)?((t=JSON.parse(t)).addressSelector="[id^=email_to], [id^=from_], [id^=cc], [id^=bcc]",t.bodySelector="[id^=email_message_]",t):[];var g,y,v,h={save:u({href:"#frm_save_icon"}),drag:u({href:"#frm_drag_icon",classList:["frm_drag_icon","frm-drag"]})},b=jQuery(document.getElementById("frm-show-fields")),j=document.getElementById("new_fields"),w=document.getElementById("form_id"),Q=!1,x=0,k=0,E=0,A={},S=0,L=wp.i18n,I=L.__,q=L.sprintf,B={dragging:!1};w&&(k=w.value);var C,N=new URL(window.location.href),T=N.searchParams,O=document.getElementById("frm_builder_page");function F(e){e.stopPropagation(),e.preventDefault(),D(this)}function D(e){var t=e.getAttribute("data-frmverify"),r=e.getAttribute("data-loaded-from");return null===t||"frm-confirmed-click"===e.id||("entries-list"===r?wp.hooks.applyFilters("frm_on_multiple_entries_delete",{link:e,initModal:Ni}):function(e){var t=Ni("#frm_confirm_modal","400px"),r=document.getElementById("frm-confirmed-click");if(!1===t)return!1;r&&(r.style.display="block");var n=e.getAttribute("data-frmverify"),o=n?e.getAttribute("data-frmverify-btn"):"",i=jQuery(".frm-confirm-msg");i.empty(),n&&(i.append(document.createTextNode(n)),o&&(null==r||r.classList.add(o)));var a=e.dataset;if(r){for(var l in r.dataset)r.removeAttribute("data-".concat(l));for(var s in a)"frmverify"!==s&&r.setAttribute("data-".concat(s),a[s])}return wp.hooks.doAction("frmAdmin.beforeOpenConfirmModal",{$info:t,link:e}),t.dialog("open"),null==r||r.setAttribute("href",e.getAttribute("href")||e.getAttribute("data-href")),!1}(e))}function M(e,t){var r=Ni("#frm_info_modal",t||"400px");if(!1===r)return!1;"string"==typeof e&&(e={msg:e}),e=Object.assign({title:"",msg:I("Are you sure?","formidable"),img:"",closeText:I("Got it!","formidable"),actionUrl:"",actionText:"",noCenter:!1},e);var n=r[0].querySelector(".info-modal-title");n.textContent=e.title||"",n.classList.toggle("frm_hidden",!e.title),e.msg&&(r[0].querySelector(".frm-info-msg").innerHTML=pn(e.msg)),r[0].querySelector(".info-modal-img").src=e.img,r[0].querySelector(".info-modal-img-wrapper").classList.toggle("frm_hidden",!e.img);var o=document.getElementById("frm-info-click");e.closeText&&(o.textContent=e.closeText),o.classList.toggle("button-primary",!e.actionUrl),o.classList.toggle("frm-button-primary",!e.actionUrl),o.classList.toggle("button-secondary",Boolean(e.actionUrl)),o.classList.toggle("frm-button-secondary",Boolean(e.actionUrl));var i=r[0].querySelector(".info-modal-action-link");return e.actionUrl&&(i.href=e.actionUrl,e.actionText&&(i.textContent=e.actionText)),i.classList.toggle("frm_hidden",!e.actionUrl),r[0].querySelector(".info-modal-inside").classList.toggle("frmcenter",!e.noCenter),r[0].querySelector(".info-modal-buttons").classList.toggle("frmright",e.noCenter),r.dialog("open"),!1}function P(e){var t=this.getAttribute("data-frmtoggle"),r=this.getAttribute("data-toggletext"),n=jQuery(t);return e.preventDefault(),n.toggle(),null!==r&&""!==r&&(this.setAttribute("data-toggletext",this.innerHTML),this.textContent=r),!1}function H(e){var t=this.getAttribute("data-frmhide"),r=this.getAttribute("data-frmshow"),n=this.getAttribute("data-frmuncheck"),o=n?n.split(","):[];"INPUT"!==this.nodeName||"checkbox"!==this.type||this.checked||(null!==t?(r=t,t=null):null!==r&&(t=r,r=null)),e.preventDefault();var i=this.getAttribute("data-toggleclass")||"frm_hidden";null!==t&&jQuery(t).addClass(i),null!==r&&jQuery(r).removeClass(i);var a=this.parentNode.querySelectorAll("a.current");if(null!==a){for(var l=0;l1&&(e="",t=""):0===o.indexOf("frm_postmeta_")&&(jQuery("#frm_postmeta_rows .frm_postmeta_row").length<2&&(e=".frm_add_postmeta_row.button"),jQuery(".frm_toggle_cf_opts").length&&jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#".concat(o,")")).last().length&&(""!==e&&(e+=","),e+="#".concat(jQuery("#frm_postmeta_rows .frm_postmeta_row:not(#".concat(o,")")).last().attr("id")," .frm_toggle_cf_opts")));var a=document.getElementById(o),l=jQuery(a);return l.fadeOut(300,function(){var r;l.remove(),Ro(),""!==t&&(jQuery(t).hide(),function(e){var t=document.querySelector(e);if(t){var r,n=i(t.classList);try{for(n.s();!(r=n.n()).done;){var o=r.value,a=document.querySelector('input[data-toggleclass="'.concat(o,'"]'));if(null!=a&&a.checked)return void(a.checked=!1)}}catch(e){n.e(e)}finally{n.f()}}}(t)),""!==e&&jQuery("".concat(e," a,").concat(e)).removeClass("frm_hidden").fadeIn("slow"),this.closest(".frm_form_action_settings")&&function(e){var t;co(e),"payment"===e&&["stripe","square","paypal"].forEach(function(e){return co(e)}),document.querySelector(".frm_form_action_settings")||null===(t=document.querySelector(".frm-no-actions-message"))||void 0===t||t.classList.remove("frm_hidden");var r={type:e};wp.hooks.doAction("frm_after_action_removed",r)}(this.closest(".frm_form_action_settings").querySelector(".frm_action_name").value),null===(r=document.querySelector(".tooltip"))||void 0===r||r.remove()}),void 0!==r&&(r=jQuery(r)).fadeOut(400,function(){r.remove()}),""!==e&&jQuery(this).closest(".frm_logic_rows").fadeOut("slow"),wp.hooks.doAction("frm_admin_tag_removed",o,a),!1}}function G(){var e,t=document.querySelector("#frm-actions-filter-content .frm-action:not(.frm_hidden)");null===(e=document.getElementById("frm-actions-no-results"))||void 0===e||e.classList.toggle("frm_hidden",t)}function U(e,t){void 0===t&&(t=this),et(t,!1);var r=jQuery(t).closest(".frm_form_action_settings"),n=e.target;if(r.length&&void 0!==n){var o=n.parentElement.className;if("string"==typeof o&&(o.includes("frm_email_icons")||o.includes("frm_toggle")))return void e.stopPropagation()}var i=r.children(".widget-inside");if(r.length&&i.find("p, div, table").length<1){var a=r.find('input[name$="[ID]"]').val(),l=r.find('input[name$="[post_excerpt]"]').val();l&&(i.html(' '),r.find(".spinner").fadeIn("slow"),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_form_action_fill",action_id:a,action_type:l,nonce:frmGlobal.nonce},success:function(e){i.html(e),ui(),Yn("#".concat(r.attr("id"))),bi(i),jQuery(t).trigger("frm-action-loaded"),wp.hooks.doAction("frm_filled_form_action",i)}}))}jQuery(t).closest(".frm_field_box").siblings().find(".widget-inside").slideUp("fast"),void 0!==t.className&&t.className.includes("widget-action")||jQuery(t).closest(".start_divider").length<1||((i=jQuery(t).closest("div.widget").children(".widget-inside")).is(":hidden")?i.slideDown("fast"):i.slideUp("fast"))}function W(){var e=this.getAttribute("href");if(null===e)return!1;var t=e.replace("#","."),r=jQuery(this);r.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),r.closest("div").children(".tabs-panel").not(e).not(t).hide();var n=document.getElementById(e.replace("#",""));return n&&(n.style.display="block"),"frm_insert_fields_tab"!==this.id||this.closest("#frm_adv_info")||Ke(),!1}function $(e,t){var r=(e=jQuery(e)).attr("href");if(void 0!==r){var n,o,i=r.replace("#",".");if(e.closest("li").addClass("frm-tabs active").siblings("li").removeClass("frm-tabs active starttab"),e.closest("div").find(".tabs-panel").length)e.closest("div").children(".tabs-panel").not(r).not(i).hide();else if(null!==document.getElementById("form_global_settings")){var a=e.data("frmajax");e.closest(".frm_wrap").find(".tabs-panel, .hide_with_tabs").hide(),void 0!==a&&"1"==a&&(n=r.replace("#",""),(o=jQuery(".frm_".concat(n,"_ajax"))).length&&jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_settings_tab",tab:n.replace("_settings",""),nonce:frmGlobal.nonce},success:function(e){o.replaceWith(e)}}))}else jQuery("#frm-categorydiv .tabs-panel, .hide_with_tabs").hide();jQuery(r).show(),jQuery(i).show(),Xo(),"auto"!==t&&(jQuery(".frm_updated_message").hide(),jQuery(".frm_warning_style").hide()),jQuery(e).closest("#frm_adv_info").length||(jQuery(".frm_form_settings").length?jQuery(".frm_form_settings").attr("action","?page=formidable&frm_action=settings&id=".concat(jQuery('.frm_form_settings input[name="id"]').val(),"&t=").concat(r.replace("#",""))):jQuery(".frm_settings_form").attr("action","?page=formidable-settings&t=".concat(r.replace("#",""))))}}function V(e){var t,r;document.querySelectorAll(e).forEach(function(e){K(e),Array.from(e.children).forEach(function(e){return Y(e,".frm-move")});var t=jQuery(e).children('[data-type="divider"]').children(".divider_section_only");t.length&&K(t)}),t=jQuery("#frm_builder_page"),r={items:".frm_sortable_field_opts li",axis:"y",opacity:.65,forcePlaceholderSize:!1,handle:".frm-drag",helper:function(e,t){return Q=t.clone().insertAfter(t),t.clone()},stop:function(e,t){Q&&Q.remove(),an(t.item.attr("id").replace("frm_delete_field_","").replace("-".concat(t.item.data("optkey"),"_container"),"")),Ro()}},jQuery(t).sortable(r)}function K(e){jQuery(e).droppable({accept:".frmbutton, li.frm_field_box",deactivate:ne,over:J,out:X,tolerance:"pointer"})}function J(e,t){var r=function(e){return e.classList.contains("divider_section_only")&&(e=jQuery(e).nextAll(".start_divider.frm_sorting").get(0)),e}(e.target);if(!we(t.draggable[0],r,e))return r.classList.remove("frm-over-droppable"),void jQuery(r).parents("ul.frm_sorting").addClass("frm-over-droppable");document.querySelectorAll(".frm-over-droppable").forEach(function(e){return e.classList.remove("frm-over-droppable")}),r.classList.add("frm-over-droppable"),jQuery(r).parents("ul.frm_sorting").addClass("frm-over-droppable")}function X(e){e.target.classList.remove("frm-over-droppable")}function Y(e,t){var r={helper:Z,revert:"invalid",delay:10,start:ee,stop:te,drag:re,cursor:"grabbing",refreshPositions:!0,cursorAt:{top:0,left:90}};"string"==typeof t&&(r.handle=t),jQuery(e).draggable(r)}function Z(e){var t,r=e.delegateTarget;if(xe(r)){var n=document.getElementById("frm-insert-fields").querySelector(".frm_ttext").cloneNode(!0);return n.querySelector("use").setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_field_group_layout_icon"),n.querySelector("span").textContent=I("Field Group","formidable"),n.classList.add("frm_field_box"),n.classList.add("ui-sortable-helper"),n}if(r.classList.contains("frmbutton"))return(t=r.cloneNode(!0)).classList.add("ui-sortable-helper"),r.classList.add("frm-new-field"),t;if(r.hasAttribute("data-ftype")){var o=r.getAttribute("data-ftype");if(t=document.getElementById("frm-insert-fields").querySelector(".frm_t".concat(o)))return(t=t.cloneNode(!0)).classList.add("form-field"),t.classList.add("ui-sortable-helper"),t.cloneNode(!0)}return c({className:"frmbutton"})}function ee(e,t){if(e.target.classList.contains("frm_at_limit"))return Le(),!1;B.dragging=!0;var r,n=y;n.classList.add("frm-dragging-field"),document.body.classList.add("frm-dragging"),t.helper.addClass("frm-sortable-helper"),t.helper.initialOffset=n.scrollTop,e.target.classList.add("frm-drag-fade"),vr(),(r=document.querySelectorAll("ul.start_divider")).length&&r.forEach(function(e){[].slice.call(e.children).forEach(function(e){(0===e.children.length||1===e.children.length&&"ul"===e.firstElementChild.nodeName.toLowerCase()&&0===e.firstElementChild.children.length)&&e.remove()})}),De(),Te(),z()}function te(){y.classList.remove("frm-dragging-field"),document.body.classList.remove("frm-dragging");var e=document.querySelector(".frm-drag-fade");e&&e.classList.remove("frm-drag-fade")}function re(e,t){!function(e){v.scrollTop(function(t,r){var n=e.clientY,o=y.offsetHeight,i=e.clientY-y.offsetTop,a=i-o/2;return i>o-50&&n>5?r+.1*a:i<70&&n<130?r-Math.abs(.1*a):r})}(e);var r=e.target,n=function(){for(var e=document.getElementById("frm-show-fields");e.querySelector(".frm-over-droppable");)e=e.querySelector(".frm-over-droppable");return"frm-show-fields"!==e.id||e.classList.contains("frm-over-droppable")||(e=!1),e}(),o=document.getElementById("frm_drag_placeholder");if(we(r,n,e)){o||(o=s("li",{id:"frm_drag_placeholder",className:"sortable-placeholder"}));var i,a=t.helper.get(0);if((a.classList.contains("form-field")||a.classList.contains("frm_field_box"))&&(a.style.transform="translateY(".concat((i=t.helper,y.scrollTop-i.initialOffset),"px)")),"frm-show-fields"===n.id||n.classList.contains("start_divider"))return o.style.left=0,void function(e){var t,r=e.y,n=e.placeholder,o=jQuery(e.droppable),i=o.children().not(".edit_field_type_end_divider");if(0===i.length)o.prepend(n),t=0;else{var a=oe(o,r);if(a===i.length){var l=jQuery(i.get(a-1));t=l.offset().top+l.outerHeight(),o.append(n);var s=o.children(".edit_field_type_end_divider");s.length&&o.append(s)}else t=jQuery(i.get(a)).offset().top,jQuery(i.get(a)).before(n)}t-=o.offset().top,n.style.top="".concat(t,"px")}({droppable:n,y:e.clientY,placeholder:o});o.style.top="",function(e){var t,r=e.x,n=e.placeholder,o=jQuery(e.droppable),i=ae(o);if(i.length){var a=function(e,t){var r,n,o,i,a=ae(e);for(i=0,r=a.length-1;r>=0;--r)if(n=a.get(r),t>(o=jQuery(n).offset().left)){i=r,t>o+jQuery(n).outerWidth()/2&&(i=r+1);break}return i}(o,r);if(a===i.length){var l=jQuery(i.get(a-1));t=l.offset().left+l.outerWidth(),o.append(n)}else t=jQuery(i.get(a)).offset().left,jQuery(i.get(a)).before(n),t-=0===a?4:8;t-=o.offset().left,n.style.left="".concat(t,"px")}}({droppable:n,x:e.clientX,placeholder:o})}else o&&o.remove()}function ne(e,t){if(B.dragging){B.dragging=!1;var r=t.draggable[0],n=document.getElementById("frm_drag_placeholder");if(!n)return t.helper.remove(),void g();!function(e){if(e.previousElementSibling&&e.previousElementSibling.classList.contains("frm-is-collapsed")){var t=jQuery(e).prevUntil('[data-type="break"]');if(t.length){var r=t.find(".frm-collapse-page").get(0);r&&r.click()}}}(n);var o=t.helper.parent(),i=t.helper.get(0).closest("ul.start_divider"),a=n.closest("ul.start_divider");r.classList.contains("frm-new-field")?function(e){if(ge(e))wp.hooks.doAction("frm_stopped_inserting_by_dragging",e);else{var t=document.getElementById("frm_drag_placeholder"),r="".concat(e.replace("|","-"),"_").concat(je()),n=s("li",{id:r,className:"frm-wait frmbutton_loadingnow"}),o=jQuery(n),i=fe(jQuery(t)),a=ue(i),l=me(i);t.parentNode.insertBefore(n,t),t.remove(),le(o);var c=0;"summary"===e&&(c=jQuery(".frmbutton_loadingnow#".concat(r)).prevAll('li[data-type="break"]').length?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:pe(e,l,a,c),success:function(t){ye(t,o);var r=ve(t);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:r,fieldType:e,form_id:a})},error:be})}}(r.id):(function(e,t){t.parentNode.insertBefore(e,t)}(r,n),function(e){if("UL"===e.nodeName&&!e.classList.contains("start_divider")&&"frm-show-fields"!==e.id){var t=e.closest("li");t&&!t.classList.contains("ui-draggable")&&Y(t,".frm-move")}}(n.parentElement));var l=i?parseInt(i.closest(".edit_field_type_divider").getAttribute("data-fid")):0,c=a?parseInt(a.closest(".edit_field_type_divider").getAttribute("data-fid")):0;n.remove(),t.helper.remove();var d=o.length?ae(o):[];!function(e,t){var r;e.length&&(t.length?le(t.first()):(r=e.get(0).closest("li.frm_field_box"))&&!r.classList.contains("edit_field_type_divider")&&r.remove())}(o,d),function(e,t){0===t.length&&1===ae(jQuery(e.parentNode)).length||le(jQuery(e))}(r,d),l!==c&&_e(jQuery(r),i),g()}}function oe(e,t){var r,n,o,i,a=e.children().not(".edit_field_type_end_divider"),l=a.length;if(!document.querySelector(".frm-has-fields .frm_no_fields"))return 0;for(i=0,r=l-1;r>=0;--r)if(n=a.get(r),t>(o=jQuery(n).offset().top)){i=r,t>o+jQuery(n).outerHeight()/2&&(i=r+1);break}return i}function ie(){document.querySelectorAll("ul#frm-show-fields, ul.start_divider").forEach(function(e){e.childNodes.forEach(function(e){void 0!==e.classList&&(e.classList.contains("edit_field_type_end_divider")||void 0!==e.classList&&e.classList.contains("form-field")&&We(e))})}),An(),document.querySelectorAll(".edit_field_type_end_divider").forEach(function(e){return e.parentNode.append(e)}),document.querySelectorAll("li.form_field_box:not(.form-field)").forEach(function(e){return!e.children.length&&e.remove()}),En();var e=new Event("frm_sync_after_drag_and_drop",{bubbles:!1});document.dispatchEvent(e)}function ae(e){var t=jQuery(),r=e.get(0);return r.children?(Array.from(r.children).forEach(function(e){if("none"!==e.style.display){var r=e.classList;!r.contains("form-field")||r.contains("edit_field_type_end_divider")||r.contains("frm-sortable-helper")||(t=t.add(e))}}),t):t}function le(e,t){var r;void 0===t&&(t="even");var n=e.parent().children("li.form-field, li.frmbutton_loadingnow").not(".edit_field_type_end_divider"),o=n.length,i=["frm_full","frm_half","frm_third","frm_fourth","frm_sixth","frm_two_thirds","frm_three_fourths","frm1","frm2","frm3","frm4","frm5","frm6","frm7","frm8","frm9","frm10","frm11","frm12"];"even"===t&&5!==o?n.each(de(i,Kt(o))):"clear"===t?n.each(de(i,"")):(r=["left","right","middle","even"].includes(t)?function(e){return Vt(o,t,e)}:function(e){return sr(t[e])},n.each(de(i,r))),se(e.parent(),n.length)}function se(e,t){if(void 0!==e.offset()){var r=t>=2,n=document.getElementById("frm_field_group_controls");if(!n){if(!r)return;(n=c()).id="frm_field_group_controls",n.setAttribute("role","group"),n.setAttribute("tabindex",0),function(e){var t=document.createElement("span");t.innerHTML=' ';var r=I("Set Row Layout","formidable");ce(t,r),Rt(t,r);var n=document.createElement("span");n.innerHTML=' ',n.classList.add("frm-move");var o=I("Move Field Group","formidable");ce(n,o),Rt(n,o),e.innerHTML="",e.append(t),e.append(n),e.append(function(){var e=d({className:"dropdown"}),t=f({className:"frm_bstooltip frm-hover-icon frm-dropdown-toggle dropdown-toggle",children:[d({child:u({href:"#frm_thick_more_vert_icon"})}),d({className:"screen-reader-text",text:I("Toggle More Options Dropdown","formidable")})]});frmDom.setAttributes(t,{title:I("More Options","formidable"),"data-bs-toggle":"dropdown","data-bs-container":"body","data-bs-display":"static"}),Rt(t,I("More Options","formidable")),e.append(t);var r=c({className:"frm-dropdown-menu dropdown-menu dropdown-menu-right"});return r.setAttribute("role","menu"),e.append(r),e}())}(n),O.append(n)}e.append(n),n.style.display=r?"block":"none"}}function ce(e,t){e.setAttribute("data-bs-toggle","tooltip"),e.setAttribute("data-bs-container","body"),e.setAttribute("title",t),e.addEventListener("mouseover",function(){null===e.getAttribute("data-original-title")&&jQuery(e).tooltip()})}function de(e,t){return function(r){for(var n="function"==typeof t?t(r):t,o=e.length,i=!1,a=0;a0&&document.getElementById("form_id").value!==r||(o.last_row_field_ids=function(){var e=document.querySelector(".edit_field_type_submit");if(!e)return[];for(var t=e.parentNode.children,r=[],n=0;nt.childElementCount-1:i<=jQuery(t.querySelector(".edit_field_type_submit").closest("#frm-show-fields > li")).index()}if(n)return!(t.classList.contains("start_divider")||!Qe(t.parentElement)&&(!Qe(t.parentElement.nextElementSibling)||e.parentElement.querySelector("li.frm_field_box:not(.edit_field_type_submit)")));var a=t.classList.contains("start_divider")&&null!==t.closest(".repeat_section"),l=null!==t.closest(".repeat_section");if(a||l){if(e.classList.contains("edit_field_type_gdpr")||"gdpr"===e.id)return!1;if(wp.hooks.applyFilters("frm_deny_drop_in_repeater",!1,e))return!1}if(!a){if(!function(e,t){if(e.length<12)return!0;if(e.length>12)return!1;var r=t.attr("data-fid");return 1===jQuery(e).filter('[data-fid="'.concat(r,'"]')).length}(ae(jQuery(t)),jQuery(e)))return!1;if("divider"===e.id&&t.closest(".start_divider"))return!1}return e.classList.contains("frm-new-field")?function(e,t){var r=e.classList,n=r.contains("frm_tbreak"),o=r.contains("frm_thidden"),i=r.contains("frm_tdivider"),a=r.contains("frm_tform"),l=r.contains("frm_tuser_id");return"frm-show-fields"===t.id||t.classList.contains("start_divider")?!(n||o||i||a)||(!(t.classList.contains("start_divider")||null!==t.closest(".start_divider"))||!a&&!i):!(ke(t)||o||n||l)}(e,t):function(e,t){if(xe(e))return function(e,t){return!(!t.classList.contains("start_divider")||null!==e.querySelector(".start_divider"))}(e,t);if(e.classList.contains("edit_field_type_break"))return!1;if(t.classList.contains("start_divider"))return function(e){return!e.classList.contains("edit_field_type_form")&&!e.querySelector(".edit_field_type_form")&&!(e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"))}(e);var r=e.classList.contains("edit_field_type_hidden"),n=e.classList.contains("edit_field_type_user_id");return!r&&!n&&function(e,t){if(ke(t))return!1;if(jQuery(e).children("ul.frm_sorting").not(".start_divider").length>0)return!1;var r=e.classList.contains("edit_field_type_divider")||e.querySelector(".edit_field_type_divider"),n=e.classList.contains("edit_field_type_form");return!(null!==t.closest(".start_divider")&&(r||n))}(e,t)}(e,t)}function Qe(e){return null==e?void 0:e.matches("#frm-show-fields > li:last-child")}function xe(e){return e.classList.contains("frm_field_box")&&!e.classList.contains("form-field")}function ke(e){return null!==e.querySelector(".edit_field_type_break, .edit_field_type_hidden, .edit_field_type_user_id")}function Ee(e){var t=document.getElementById(e),r=jQuery(t),n=[],o=function(e){var t=e.querySelector(".frm_hidden_fdata");e.classList.add("frm_load_now"),null!==t&&n.push(t.innerHTML)};o(t);for(var i=Ae(t);i&&n.length<15;)o(i),i=Ae(i);jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_load_field",field:n,form_id:k,nonce:frmGlobal.nonce},success:function(e){return function(e,t,r){var n,o;if(0===(e=e.replace(/^\s+|\s+$/g,"")).indexOf("{")){for(n in e=JSON.parse(e))if(Object.hasOwn(e,n)){jQuery("#frm_field_id_".concat(n)).replaceWith(e[n]);var i=document.getElementById("frm_field_id_".concat(n));i&&(i.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))}),i.querySelectorAll(".frm-dropdown-menu").forEach(function(e){return e.classList.add("dropdown-menu")})),V("#frm_field_id_".concat(n,".edit_field_type_divider ul.frm_sorting")),Y(document.getElementById("frm_field_id_".concat(n)))}((o=t.nextAll(".frm_field_loading:not(.frm_load_now)")).length||(o=jQuery(document.getElementById("frm-show-fields")).find(".frm_field_loading:not(.frm_load_now)")).length)&&Ee(o.attr("id")),ui(),Dr(),qe();var a=new Event("frm_ajax_loaded_field",{bubbles:!1});a.frmFields=r.map(function(e){return JSON.parse(e)}),document.dispatchEvent(a)}else jQuery(".frm_load_now").removeClass(".frm_load_now").html("Error")}(e,r,n)}})}function Ae(e){var t;return e.nextElementSibling?e.nextElementSibling:null===(t=e.parentNode)||void 0===t||null===(t=t.closest(".frm_field_box"))||void 0===t||null===(t=t.nextElementSibling)||void 0===t?void 0:t.querySelector(".form-field")}function Se(){var e=jQuery(this);if(e.hasClass("disabled"))return!1;var t=e.closest(".frmbutton"),r=t.attr("id");if(t.hasClass("frm_at_limit"))return Le(),!1;if(frm_admin_js.paymentsSettingsModal&&"object"===o(frm_admin_js.paymentsSettingsModal)&&["product","quantity","total"].includes(r))return M(frm_admin_js.paymentsSettingsModal),!1;if(!ge(r)){var n=0;"summary"===r&&(n=b.children('li[data-type="break"]').length>0?1:0);var i=k;return jQuery.ajax({type:"POST",url:ajaxurl,data:pe(r,0,i,n),success:function(e){Ie(e);var t=ve(e);t&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:e,fieldId:t,fieldType:r,form_id:i})},error:be}),!1}}function Le(){var e=document.querySelector(".frm_wrap");if(e){var t=document.createElement("a");t.setAttribute("data-frmverify",I("This field type has reached its limit.","formidable")),e.append(t),t.click(),t.remove();var r=document.getElementById("frm-confirmed-click");r&&(r.style.display="none")}}function Ie(e){document.getElementById("frm_form_editor_container").classList.add("frm-has-fields");var t=Ue(e),r=b[0].querySelector(".edit_field_type_submit");r?jQuery(r.closest(".frm_field_box:not(.form-field)")).before(t):b.append(t),$e(e,!0),t.each(function(){K(this.querySelector("ul.frm_sorting")),Y(this.querySelector(".form-field"),".frm-move")})}function qe(){var e=!0,t=document.querySelectorAll(".frmjs_prod_field_opt_cont");b.find("li.edit_field_type_product").length>1&&(e=!1);for(var r=0;r '),o.append(document.createTextNode(" ")),o.append(i),n.append(o),e.append(n)})}(t,!0===e);var r=jQuery(t);r.offset().left>jQuery(window).width()-r.outerWidth()?t.style.left="".concat(-r.outerWidth(),"px"):y&&r.offset().left").addClass("frm_field_box").html(jQuery("").addClass("frm_grid_container frm_sorting").append(e)))}),r}function We(e){var t=s("ul",{className:"frm_grid_container frm_sorting"}),r=s("li",{className:"frm_field_box",child:t});e.replaceWith(r),t.append(e),K(t),Y(r,".frm-move")}function $e(e,t){var r,n,i=/id="(\S+)"/.exec(e),a=document.getElementById(i[1]),l="#".concat(i[1],".edit_field_type_divider ul.frm_sorting.start_divider"),s=jQuery(l),d=a.getAttribute("data-type");r=e,(n=c()).innerHTML=r,n.querySelectorAll(".form-field").forEach(Ve);var f,u,m=!1;if(Ro(),V(l),"quantity"===d&&function(e){var t=e.getAttribute("data-fid"),r=document.getElementById("field_options[product_field_".concat(t,"]"));r&&(nt(r),io(document.getElementById("frm-single-settings-".concat(t))))}(a),"product"!==d&&"quantity"!==d||qe(),s.length)s.parent(".frm_field_box").children(".frm_no_section_fields").addClass("frm_block");else{var _=jQuery(a).closest("ul.frm_sorting.start_divider");_.length&&(Sn(_),m=!0)}e.includes("frm-collapse-page")&&Dr(),u="frm-newly-added",(f=a).classList?f.classList.add(u):f.className+=" ".concat(u),setTimeout(function(){a.classList.remove("frm-newly-added")},1e3);var p,g=a.querySelector("#frm-last-row-fields-order");if(g&&((p=JSON.parse(g.value))&&"object"===o(p)&&Object.keys(p).forEach(function(e){var t=document.querySelector('input[name="field_options[field_order_'.concat(e,']"]'));t&&(t.value=p[e])})),t){var y=a.getBoundingClientRect(),v=document.getElementById("post-body-content");y.top>=0&&y.left>=0&&y.right<=(window.innerWidth||document.documentElement.clientWidth)&&y.bottom<=(window.innerHeight||document.documentElement.clientHeight)||v.scroll({top:v.scrollHeight,left:0,behavior:"smooth"}),!1===m&&Sn(s)}Je(),ui(),document.getElementById("frm-show-fields").classList.remove("frm-over-droppable"),function(e){var t=document.getElementById(e);null!=t&&t.dataset.limit&&Ar(e)>=t.dataset.limit&&t.classList.add("frm_at_limit")}(d),a.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))}),a.querySelectorAll(".frm-dropdown-menu").forEach(function(e){return e.classList.add("dropdown-menu")});var h=new Event("frm_added_field",{bubbles:!1});h.frmField=a,h.frmSection=l,h.frmType=d,h.frmToggles=m,document.dispatchEvent(h)}function Ve(e){if(e.dataset.fid){var t=document.getElementById("draft_fields");t&&(""===t.value?t.value=e.dataset.fid:t.value.split(",").includes(e.dataset.fid)||(t.value+=",".concat(e.dataset.fid)))}}function Ke(e){jQuery("#new_fields .frm-single-settings").addClass("frm_hidden"),jQuery("#frm-options-panel > .frm-single-settings").removeClass("frm_hidden"),Je(e)}function Je(e){jQuery("li.ui-state-default.selected").removeClass("selected"),jQuery(".frm-show-field-settings.selected").removeClass("selected"),e||vr()}function Xe(){var e=this.value,t=function(e){var t,r=[],n=e.split(""),o=n.length,i=["{","[","("],l={"}":"{",")":"(","]":"["},s=!1;for(t=0;t0||s?"".concat(a.unmatched_parens,"\n\n"):""}(e);t+=function(e,t){var r=function(e,t){var r="";return function(e){return jQuery(e).siblings('label[for^="calc_type"]').children("input").prop("checked")}(t)||/\[(date|time|email|ip)\]/.test(e)&&(r="".concat(a.text_shortcodes,"\n\n")),r}(e,t);return r+=function(e){var t="";return/\[id\]|\[key\]|\[if\s\w+\]|\[foreach\s\w+\]|\[created-at(\s*)?/g.test(e)&&(t+="".concat(a.view_shortcodes,"\n\n")),t}(e)}(e,this),""!==t&&M("".concat(e,"\n\n").concat(t))}function Ye(e,t){for(var r=!1,n=0;n").concat(l[t].fieldName,""))):(r=r?" checked":"",o.push(''),o.push(' ").concat(l[t].fieldName)),o.push(" "));e.innerHTML=o.join("")}function ot(){for(var e=document.querySelectorAll(".frmjs_prod_field_opt"),t=0;t '):(d.innerHTML=pn(c),"TEXTAREA"===d.nodeName&&d.classList.contains("wp-editor-area")&&jQuery(d).trigger("change"),d.classList.contains("frm_primary_label")&&"break"===d.nextElementSibling.getAttribute("data-ftype")&&(d.nextElementSibling.querySelector(".frm_button_submit").textContent=c)))}function lt(e){var t=parseFloat(e.getAttribute("max")),r=parseFloat(e.getAttribute("min"));return(t-r)/2+r}function st(){var e=this.getAttribute("data-fid"),t="";["field_options_max_","frm_format_"].forEach(function(r){var n=document.getElementById(r+e);n&&(t+=n.value)});var r=document.getElementsByName("field_options[type_".concat(e,"]"))[0];"text"===r.options[r.selectedIndex].value&&dt(""!==t,".frm_invalid_msg".concat(e))}function ct(){var e=this.id.replace("frm_","").replace("req_field_",""),t=this.checked,r=jQuery("#field_label_".concat(e," .frm_required"));if(dt(t,".frm_required_details".concat(e)),t){var n=jQuery('input[name="field_options[required_indicator_'.concat(e,']"]'));""===n.val()&&n.val("*"),r.removeClass("frm_hidden")}else r.addClass("frm_hidden")}function dt(e,t){var r=jQuery(t);if(e)r.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast");else{var n=r.fadeOut("fast").closest(".frm_validation_box"),o=n.css("display","block").children(":not(".concat(t,"):visible")).length;n.css("display",""),0===o&&r.closest(".frm_validation_msg").fadeOut("fast")}}function ft(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(".frm_unique_details".concat(e));if(this.checked){t.fadeIn("fast").closest(".frm_validation_msg").fadeIn("fast");var r=jQuery(".frm_unique_details".concat(e," input"));""===r.val()&&r.val(a.default_unique)}else{var n=t.fadeOut("fast").closest(".frm_validation_box"),o=n.css("display","block").children(":not(.frm_unique_details".concat(e,"):visible")).length;n.css("display",""),0===o&&t.closest(".frm_validation_msg").fadeOut("fast")}}function ut(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=jQuery(this).val(),r=jQuery(document.getElementById("frm_field_id_".concat(e)));if(dt(""!==t,".frm_conf_details".concat(e)),""!==t){var n=jQuery(".frm_validation_box .frm_conf_details".concat(e," input"));""===n.val()&&n.val(a.default_conf),function(e){var t=document.getElementsByName("field_options[type_".concat(e,"]"))[0].value;mt(document.getElementById("field_description_".concat(e)),"field_options[description_".concat(e,"]"),a["enter_".concat(t)]),mt(document.getElementById("conf_field_description_".concat(e)),"field_options[conf_desc_".concat(e,"]"),a["confirm_".concat(t)])}(e),"inline"===t?r.removeClass("frm_conf_below").addClass("frm_conf_inline"):"below"===t&&r.removeClass("frm_conf_inline").addClass("frm_conf_below"),jQuery(".frm-conf-box-".concat(e)).removeClass("frm_hidden")}else jQuery(".frm-conf-box-".concat(e)).addClass("frm_hidden"),setTimeout(function(){r.removeClass("frm_conf_inline frm_conf_below")},200)}function mt(e,t,r){e.innerHTML===a.desc&&(e.innerHTML=r,document.getElementsByName(t)[0].value=r)}function _t(e){var t=JSON.parse(this.getAttribute("data-opts"));return e.preventDefault(),document.getElementById("frm_bulk_options").value=t.join("\n"),!1}function pt(){var e,t,r,n=jQuery(this).closest(".frm-single-settings").data("fid"),o=jQuery("#frm_field_".concat(n,"_opts .frm_option_template")).prop("outerHTML"),i=jQuery(this).data("opttype"),a=0,l="000",s=function(e){for(var t=0,r=0,n=jQuery("#frm_field_".concat(e,"_opts li")),o=0;to||"000"===o)&&(o=r)}return o}(n);if(s!==l&&(a=s+1),"other"===i){document.getElementById("other_input_".concat(n)).value=1;var c=jQuery(this).data("ftype");"radio"!==c&&"select"!==c||jQuery(this).fadeOut("slow");var d={action:"frm_add_field_option",field_id:n,opt_key:a,opt_type:i,nonce:frmGlobal.nonce};jQuery.post(ajaxurl,d,function(e){jQuery(document.getElementById("frm_field_".concat(n,"_opts"))).append(e),an(n)})}else{o=(o=(o=(o=(o=o.replace(new RegExp('optkey="'.concat(l,'"'),"g"),'optkey="'.concat(a,'"'))).replace(new RegExp("-".concat(l,"_"),"g"),"-".concat(a,"_"))).replace(new RegExp("-".concat(l,'"'),"g"),"-".concat(a,'"'))).replace(new RegExp("\\[".concat(l,"\\]"),"g"),"[".concat(a,"]"))).replace("frm_hidden frm_option_template",""),zi(n,o={newOption:o});var f=this.closest(".frm_single_option");f?f.after(o.newOption):jQuery("#frm_field_".concat(n,"_opts")).append(o.newOption),an(n)}null==(r=(e=this).classList.contains("frm-add-option-legacy")?null===(t=e.closest(".frm-collapse-me"))||void 0===t?void 0:t.querySelector(".frm_sortable_field_opts"):e.closest(".frm_sortable_field_opts"))||r.querySelectorAll(".frm_remove_tag.frm_disabled").forEach(function(e){return e.classList.remove("frm_disabled")}),Ro()}function gt(){yt(jQuery(this).closest(".frm-single-settings").data("fid"),this.value)}function yt(e,t){var r=jQuery(".frm_multiple_cont_".concat(e));"select"===t?r.fadeIn("fast"):r.fadeOut("fast")}function vt(){var e=jQuery(this).closest(".frm-single-settings").data("fid");Ti(jQuery(".field_".concat(e,"_option_key")),"",this.checked),jQuery(".field_".concat(e,"_option")).toggleClass("frm_with_key")}function ht(){var e=jQuery(this).closest(".frm-single-settings"),t=e.data("fid"),r=document.getElementById("frm_field_id_".concat(t));Qt(jQuery(this));var n=hn(t);if(Ti(jQuery(".field_".concat(t,"_image_id")),"",n),Ti(jQuery(".frm_toggle_image_options_".concat(t)),"",n),Ti(jQuery(".frm_image_size_".concat(t)),"",n),Ti(jQuery(".frm_alignment_".concat(t)),"",n),Ti(jQuery(".frm-add-other#frm_add_field_".concat(t)),"",n),bt(r),n){jt(t,"inline");var o=on(t);r.classList.add("frm_image_options"),r.classList.add("frm_image_size_".concat(o)),e.find(".frm-bulk-edit-link").hide()}else r.classList.remove("frm_image_options"),jt(t,"block"),e.find(".frm-bulk-edit-link").show();wp.hooks.doAction("frm_image_options_toggled",e[0],n)}function bt(e){e.classList.remove("frm_image_size_","frm_image_size_small","frm_image_size_medium","frm_image_size_large","frm_image_size_xlarge")}function jt(e,t){jQuery("#field_options_align_".concat(e)).val(t).trigger("change")}function wt(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_".concat(e));xt(),hn(e)&&(bt(t),t.classList.add("frm_image_options"),t.classList.add("frm_image_size_".concat(on(e))))}function Qt(e){var t=e.closest(".frm-single-settings").data("fid");jQuery(".field_".concat(t,"_option")).trigger("change")}function xt(){Qt(jQuery(this))}function kt(e){var t,r=e.target.closest(".frm_image_preview_wrapper");if(null!==(t=wp)&&void 0!==t&&t.media&&(null==r||!r.dataset.upgrade)){e.preventDefault(),wp.media.model.settings.post.id=0;var n=wp.media.frames.file_frame=wp.media({multiple:!1,library:{type:["image"]}});n.on("select",function(){var e=n.state().get("selection").first().toJSON(),t=r.querySelector("img");t.setAttribute("src",e.url),t.classList.remove("frm_hidden"),t.removeAttribute("srcset"),r.querySelector(".frm_image_preview_frame").style.display="block",r.querySelector(".frm_image_preview_title").textContent=e.filename,r.querySelector(".frm_choose_image_box").style.display="none";var o=jQuery(r);o.siblings('input[name*="[label]"]').data("frmimgurl",e.url),o.find("input.frm_image_id").val(e.id).trigger("change"),wp.media.model.settings.post.id=0}),n.open()}}function Et(e){var t=jQuery(this).closest(".frm_image_preview_wrapper");e.preventDefault(),e.stopPropagation(),t.find("img").attr("src",""),t.find(".frm_image_preview_frame").hide(),t.find(".frm_choose_image_box").show(),t.find("input.frm_image_id").val(0).trigger("change")}function At(){var e=jQuery(this).closest("li").find(".frm_form_fields select");this.checked?e.attr("multiple","multiple"):e.removeAttr("multiple")}function St(){var e=document.getElementById("dropform-search-input");e&&setTimeout(function(){e.focus()},100)}function Lt(e){var t=e.target,r=t.closest(".frm_warning_style");jQuery(r).fadeOut(400,function(){return r.remove()});var n=t.dataset.action,o=new FormData;p(n,o)}function It(e){e.preventDefault()}function qt(){var e,t,r=this.parentNode,n=r.parentNode,o=n.querySelectorAll("li:not(.frm_hidden)");2===o.length&&(null===(e=Array.from(o).find(function(e){return e!==r}).querySelector(".frm_remove_tag"))||void 0===e||e.classList.add("frm_disabled"));var i=this.getAttribute("data-fid");jQuery(r).fadeOut("fast",function(){wp.hooks.doAction("frm_before_delete_field_option",this),jQuery(r).remove(),jQuery(n).find(".frm_other_option").length<1&&((t=document.getElementById("other_input_".concat(i)))&&(t.value=0),jQuery("#other_button_".concat(i)).fadeIn("fast"))}),Ro()}function Bt(){var e=jQuery(this);if(e.is(":checked")){var t,r=function(){e.off("mouseup",t)};t=function(){setTimeout(function(){e.prop("checked",!1)},0),r()},e.on("mouseup",t),e.one("mouseout",r)}}function Ct(){this.value===a.new_option&&(this.setAttribute("data-value-on-focus",this.value),this.value="")}function Nt(e){return q(I("Are you sure you want to delete these %1$s selected field(s)?","formidable"),e)}function Tt(){var e=a.conf_delete,t=this.parentNode.parentNode.parentNode.parentNode.parentNode,r=t.parentNode,n=jQuery(this).closest("li.form-field"),o=n.data("fid");if("divider"===n.data("ftype")){var i=document.querySelectorAll(".frm-field-group-hover-target .start_divider .frm_field_box"),l=0;i.forEach(function(e){var t=e.querySelectorAll("li.form-field");t&&(l+=t.length)}),l&&(e=Nt(++l))}return r.classList.contains("frm-section-collapsed")||r.classList.contains("frm-page-collapsed")||("divider_section_only"===t.className&&(e=a.conf_delete_sec),this.setAttribute("data-frmverify",e),this.setAttribute("data-frmverify-btn","frm-button-red"),this.setAttribute("data-deletefield",o),Te(),D(this)),!1}function Ot(){this.closest("li.form-field").click()}function Ft(){var e=document.querySelector(".frm-field-group-hover-target");if(e){e.classList.add("frm-selected-field-group");var t=document.createElement("div");t.classList.add("frm-delete-field-groups","frm_hidden"),document.body.append(t),t.click()}}function Dt(){var e=document.querySelector(".frm-field-group-hover-target");if(e){var t="frm_field_group_".concat(je()),r=document.createTextNode("");We(r);var n=jQuery(r).closest("li").get(0);n.classList.add("frm_hidden");var o=n.querySelector("ul");o.id=t,jQuery(e.closest("li.frm_field_box")).after(n);var i=ae(jQuery(e)),a=[],l=[],s=i.length,c={},d=0;jQuery(n).on("frm_added_duplicated_field_to_row",function(e,t){if(c[jQuery(t.duplicatedFieldHtml).attr("data-fid")]=t.originalFieldId,!(s>++d)){var r=jQuery(o),i=ae(r);l.forEach(function(e){e.remove()});for(var f=0;f6)return t.append(Ut(e,"even")),t;if(5!==e&&t.append(Ut(e,"even")),e%2==1&&t.append(Ut(e,"middle")),e<6)t.append(Ut(e,"left")),t.append(Ut(e,"right"));else{var r=c();r.classList.add("frm_fourth"),t.prepend(r)}return t}(e),l=t.closest("ul.frm_sorting");return l&&function(e,t){for(var r=t.children.length,n=0;n6?"frm_full":e%2==1?"frm_fourth":"frm_third"}return n.classList.add(r),n.setAttribute("layout-type",t),n.append(function(e,t){for(var r=Yt(),n=0;n6?"frm1":[2,3,4,6].includes(e)?sr(12/e):5===e&&void 0!==t?0===t?"frm4":"frm2":"frm12"}function Jt(e){switch(e){case 2:case 3:return"frm3";case 4:case 5:return"frm2";case 6:return"frm1";default:return"frm12"}}function Xt(e){switch(e){case 2:return"frm9";case 3:case 4:return"frm6";case 5:return"frm4";case 6:return"frm7";default:return"frm12"}}function Yt(){var e=c();return e.classList.add("frm_grid_container"),e}function Zt(){var e=document.querySelector(".frm-field-group-hover-target");if(e){var t=this.getAttribute("layout-type");le(ae(jQuery(e)).first(),t),ur()}}function er(){var e=tr(),t=this.getAttribute("layout-type");le(ae(e).first(),t),vr()}function tr(){var e=jQuery(".frm-selected-field-group"),t=e.first();return e.not(t).each(function(){ae(jQuery(this)).each(function(){var e=this.parentNode;ae(t).last().after(this),jQuery(e).children("li.form-field").length||e.closest("li.frm_field_box").remove()})}),En(),le(ae(t).first()),t}function rr(){null===this.closest(".frm-merge-fields-into-row")&&nr(ae(jQuery(".frm-field-group-hover-target")))}function nr(e){var t=e.length,r=document.getElementById("frm_field_group_popup");r.innerHTML="";var n=c();n.style.padding="0 24px";var o=Kt(5===t?6:t),i=c();if(i.style.padding="20px 0",i.classList.add("frm_grid_container"),5===t){var a=document.createElement("span");a.classList.add("frm1"),i.append(a)}var l=wr()>0&&ar(Kt(t));!1!==l&&l>=12&&(l=Math.floor(12/t));for(var s=0;s ',""),t);e.prepend(r),document.getElementById("frm-field-group-message-dismiss").addEventListener("click",function(){pr(document.getElementById("frm-field-group-message"))})}}(),"ul"===e.originalEvent.target.nodeName.toLowerCase()){var t=document.querySelector(".frm-field-group-hover-target");if(t){var r=e.ctrlKey||e.metaKey,n=e.shiftKey,o=t.classList.contains("frm-selected-field-group"),i=function(){var e=jQuery(".frm-selected-field-group");if(e.length)return e;var t=gr();if(t){var r=t.closest("ul");if(r&&1===ae(jQuery(r)).length)return r.classList.add("frm-selected-field-group"),jQuery(r)}return jQuery()}(),a=i.length;if(r||n){var l=gr();if(null===l||jQuery(l).siblings("li.form-field").length||(l.parentNode.classList.add("frm-selected-field-group"),++a),r){if(o)return--a,t.classList.remove("frm-selected-field-group"),void yr(a);++a}else if(n&&!o){++a;var s=i.first();(s.parent().index()=2||1===e&&ae(jQuery(document.querySelector(".frm-selected-field-group"))).length>1?function(){var e=document.getElementById("frm_field_multiselect_popup");if(e)return e.classList.toggle("frm-unmergable",!br()),e;(e=c()).id="frm_field_multiselect_popup",br()||e.classList.add("frm-unmergable");var t=c();t.classList.add("frm-merge-fields-into-row"),t.textContent=I("Merge into row","formidable");var r=document.createElement("a");r.style.marginLeft="5px",r.classList.add("frm_icon_font","frm_arrowdown6_icon"),r.setAttribute("href","#"),t.append(r),e.append(t);var n=c();n.classList.add("frm-multiselect-popup-separator"),e.append(n);var o=c();o.classList.add("frm-delete-field-groups"),o.append(Gt("frm_trash_svg")),e.append(o),document.getElementById("post-body-content").append(e),jQuery(e).hide().fadeIn()}():hr(),De()}function vr(e){if(void 0!==e){if(null!==e.originalEvent.target.closest("#frm-show-fields"))return;if(e.originalEvent.target.classList.contains("frm-merge-fields-into-row"))return;if(null!==e.originalEvent.target.closest(".frm-merge-fields-into-row"))return;if(e.originalEvent.target.classList.contains("frm-custom-field-group-layout"))return;if(e.originalEvent.target.classList.contains("frm-cancel-custom-field-group-layout"))return}jQuery(".frm-selected-field-group").removeClass("frm-selected-field-group"),jQuery(document).off("click",vr),hr()}function hr(){var e=document.getElementById("frm_field_multiselect_popup");e&&e.remove()}function br(){var e=document.querySelectorAll(".frm-selected-field-group"),t=e.length;if(1===t)return!1;for(var r=0,n=0;n12)return!1}return!0}function jr(e){if(null===e.originalEvent.target.closest("#frm_field_group_popup")&&!e.originalEvent.target.classList.contains("frm-custom-field-group-layout")){var t=zt(wr(),document.querySelector(".frm-selected-field-group").firstChild);this.append(t)}}function wr(){var e=0;return jQuery(document.querySelectorAll(".frm-selected-field-group")).each(function(){e+=ae(jQuery(this)).length}),e}function Qr(){var e,t=(e=[],jQuery(".frm-selected-field-group > li.form-field").each(function(){e.push(this.dataset.fid)}),e),r=function(e){return function(t){t.preventDefault(),function(e){e.forEach(function(e){kr(e)})}(e)}}(t),n=document.getElementById("frm_field_multiselect_popup");n&&n.remove(),this.setAttribute("data-frmverify",Nt(t.length)),D(this);var o=document.getElementById("frm-confirmed-click");null==o||o.removeAttribute("data-deletefield"),jQuery(o).on("click",r),jQuery("#frm_confirm_modal").one("dialogclose",function(){jQuery(o).off("click",r)})}function xr(){kr(this.getAttribute("data-deletefield"))}function kr(e){var t=jQuery("#frm_field_id_".concat(e));Er(e),t.hasClass("edit_field_type_divider")&&t.find("li.frm_field_box[data-fid]").each(function(){Er(this.getAttribute("data-fid"))}),An()}function Er(e){jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_delete_field",field_id:e,nonce:frmGlobal.nonce},success:function(){var t,r,n,o=jQuery(document.getElementById("frm_field_id_".concat(e))),i=jQuery("#frm-single-settings-".concat(e));i.is(":visible")&&(null===(t=document.querySelector(".frm-settings-panel .frm-tabs-navs ul > li:first-child"))||void 0===t||t.click(),document.querySelector("#frm-options-panel .frm-single-settings").classList.remove("frm_hidden")),function(e){var t=e[0].querySelectorAll(".frm-inline-modal[data-fills]");t.length&&t.forEach(function(e){e.classList.add("frm_hidden"),e.removeAttribute("data-fills"),e.closest("form").append(e)})}(i),i.remove(),o.fadeOut("slow",function(){var e,t=o.closest(".start_divider"),r=o.data("type"),n=o.siblings("li.form-field");if(n.length||(o.is(".edit_field_type_end_divider")?n.length=o.closest("li.form-field").siblings():e=o.closest("ul.frm_sorting").parent()),o.remove(),"break"===r?Dr():"product"===r&&(qe(),ot()),n.length?le(n.first()):e.remove(),0===jQuery("#frm-show-fields li").length||function(){if(b.get(0).childElementCount>1)return!1;var e=b.get(0).firstElementChild.firstElementChild.querySelectorAll("li.frm_field_box");return!(e.length>1)&&e[0].classList.contains("edit_field_type_submit")}()){var i=document.getElementById("frm_form_editor_container");i.classList.remove("frm-has-fields"),i.classList.add("frm-empty-fields")}else t.length&&Sn(t);z()}),o.length&&(r=o.data("type"),(n=document.getElementById(r))&&n.dataset.limit&&Ar(r)-11)for(document.getElementById("frm-fake-page").style.display="block",e=0;e200)&&(M(a.repeat_limit_min),this.value="")}function Zr(){var e=this.value;""!==e&&(e<1||e>200)&&(M(a.checkbox_limit),this.value="")}function en(e,t){jQuery(e).closest(".frm_field_box").find(".frm_".concat(t,"_form_row .frm_repeat_label")).text(e.value)}function tn(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=this.value,r=document.getElementById("frm_show_selected_fields_".concat(e)),n=document.getElementById("frm_show_selected_forms_".concat(e));jQuery(n).find("select").val(""),"form"===t?(n.style.display="inline",function(e){if(null!==e)for(;e.firstChild;)e.firstChild.remove()}(r)):(r.style.display="none",n.style.display="none",kn(t,e))}function rn(){var e=nn(this);if(e){var t=jQuery(this).closest(".frm_single_option");!function(e,t,r){var n=r.data("optkey"),o=vn(e),i=jQuery('label[for="field_'.concat(t,"-").concat(n,'"]')),a="field_options[options_".concat(e,"][").concat(n,"]"),l=jQuery('input[name="'.concat(a,'[label]"]'));if(i.length<1)return an(e),void(r.find('input[name^="default_value_"]').is(":checked")&&l.length>0&&jQuery('select[name^="item_meta['.concat(e,']"]')).val(l.val()));var s,d=i.children("input");if(s=l.length<1?(l=jQuery('input[name="'.concat(a,'"]'))).val():o?jQuery('input[name="'.concat(a,'[value]"]')).val():l.val(),!(l.length<1)){var f=i[0].childNodes;if(hn(e)){var u=function(e,t,r){var n,o=e.find("img");o&&(n=o.attr("src"));var i=bn(t);return gn(r.val(),i,n)}(r,e,l),m=i.find(".frm_image_option_container");m.length>0?m.replaceWith(u):(f[f.length-1].nodeValue="",i.append(u))}else{var _=!1;f.forEach(function(t,r){if(!1===_)"INPUT"===t.tagName&&(_=r);else if(r===_+1){var n="";!function(e){var t=document.getElementsByName("field_options[image_options_".concat(e,"]")),r=Array.from(t).find(function(e){return e.checked&&"buttons"===e.value});return void 0!==r}(e)?t.nodeValue=" ".concat(l.val()):(n=c({className:"frm_label_button_container",text:" ".concat(l.val())}),i[0].replaceChild(n,t))}else t.remove()})}d.val(s),defaultVal=r.find('input[name^="default_value_"]'),d.prop("checked",!!defaultVal.is(":checked"))}}(e.fieldId,e.fieldKey,t)}}function nn(e){var t=jQuery(e).closest(".frm_sortable_field_opts");return!!t.length&&{fieldId:t.attr("id").replace("frm_field_","").replace("_opts",""),fieldKey:t.data("key")}}function on(e){var t,r=document.getElementById("field_options_image_size_".concat(e)),n="";return r&&""!==(t=r.value)&&(n=t),n}function an(e){var t=jQuery('[name^="item_meta['.concat(e,']"]'));if(!(t.length<1)){var r={fieldId:e,metaInput:t[0]};if(!1===wp.hooks.applyFilters("frm_custom_reset_displayed_opts",!1,r)){if(t.is("select")){var n=document.getElementById("frm_placeholder_".concat(e));n&&""!==n.value?fn(t[0],{sourceID:e,placeholder:n.value}):fn(t[0],{sourceID:e})}else{var o=mn(e),i=jQuery("#field_".concat(e,"_inner_container > .frm_form_fields")),a=hn(e),l=a?on(e):"",s=a?"frm_image_option frm_image_".concat(l," "):"";i.html("");for(var c=nn(jQuery("#frm_delete_field_".concat(e,"-000_container"))),d=Pi(e),f="hidden"===t.attr("type")?t.data("field-type"):t.attr("type"),u=0;u=0;f--)d();var u=c.querySelector('option[value=""]');null!==u&&c.prepend(u)}}}function cn(e,t,r,n){null!==t||e.querySelector('option[value="'.concat(r,'"]'))||((t=frmDom.tag("option",{text:n})).value=r),e.prepend(t)}function dn(e,t,r,n,o,i){var a="",l=t.key.includes("other"),s="field_".concat(n,"-").concat(t.key),c="scale"===e?"radio":e,d=' ');return this.getSingle=function(){return""!==(a=wp.hooks.applyFilters("frm_admin.build_single_option_template",a,{opt:t,type:e,fieldId:r,classes:i,id:s}))?a:'\n\t\t\t\t\t\n\t\t\t\t\t\t \n\t\t\t\t\t\t").concat(pn(t.label),"\n\t\t\t\t\t \n\t\t\t\t\t").concat(l?d:"","\n\t\t\t\t
")},this.getSingle()}function fn(e,t){if(e){var r=t.sourceID,n=t.placeholder,o=Pi(r),i=t.other;!function(e){var t;if(void 0!==e.options)for(t=e.options.length-1;t>=0;t--)e.remove(t)}(e);for(var a=mn(r,e.id.includes("frm_field_logic_opt")),l=void 0!==n,s=0;s1&&void 0!==arguments[1]&&arguments[1],s=[],c=jQuery('input[name^="field_options[options_'.concat(e,']"]')).filter('[name$="[label]"], [name*="[other_"]'),d=Pi(e),f=bn(e),u=hn(e),m=vn(e);for(t=0;t0||(o=r=c[t].value,i=c[t].name.replace("field_options[options_".concat(e,"]["),"").replace("[label]","").replace("]",""),m&&(n=c[t].name.replace("[label]","[value]"),r=jQuery('input[name="'.concat(n,'"]')).val(),l&&""===o&&(o=""!==r?r:frm_admin_js.no_label)),u&&(o=gn(o,f,_n(c[t]))),a={saved:r,label:o=frmAdminBuild.hooks.applyFilters("frm_choice_field_label",o,e,c[t],u),checked:yn(c[t].id),key:i},d&&(n=c[t].name.replace("[label]","[price]"),a.price=jQuery('input[name="'.concat(n,'"]')).val()),s.push(a));return s}function _n(e){var t=jQuery(e).siblings(".frm_image_preview_wrapper");if(!t.length)return"";var r=t.find("img");return r.length?r.attr("src"):""}function pn(e){(e instanceof Element||e instanceof Document)&&(e=e.outerHTML);var t=jQuery.parseHTML(e).reduce(function(e,t){var r=frmDom.cleanNode(t);return"#text"===r.nodeName?e+r.textContent:e+r.outerHTML},"");return t!==e?pn(t):t}function gn(e,t,r){var n,o=e;o=pn(o),r?n=m({src:r,alt:o}):(n=c({className:"frm_empty_url"})).innerHTML=a.image_placeholder_icon;var i=t?" frm_label_with_image":"",l=[n];if(t){var d=s("span",{className:"frm_text_label_for_image_inner"});d.innerHTML=o,l.push(s("span",{className:"frm_text_label_for_image",child:d}))}return s("span",{className:"frm_image_option_container".concat(i),children:l})}function yn(e){var t=jQuery("#".concat(e));if(0===t.length)return!1;var r=t.siblings("input[type=checkbox]");return r.length&&r.prop("checked")}function vn(e){return jn("separate_value_".concat(e))}function hn(e){for(var t=!1,r=document.getElementsByName("field_options[image_options_".concat(e,"]")),n=0;n=0&&(t.splice(r,1),e.val(t),e.next(".btn-group").find('.multiselect-container input[value=""]').prop("checked",!1))}(jQuery(this))}function Bn(e){e.val(""),e.next(".btn-group").find('.multiselect-container input[value!=""]').prop("checked",!1)}function Cn(){jQuery(".frm-hide-empty").each(function(){0===jQuery(this).text().trim().length&&jQuery(this).remove()})}function Nn(e){e.preventDefault(),function(e,t,r){var n=document.getElementById(e.getAttribute("data-open")),o=jQuery(e).closest("p,ul"),i=void 0!==t;if(o.hasClass("frm-open"))o.removeClass("frm-open"),n.classList.add("frm_hidden");else{if(i||(t=Ko(e)),t){if(!i){var a=r.key;"Enter"!==a&&" "!==a&&t.focus()}o.after(n),n.setAttribute("data-fills",t.id.replace("-proxy-input","")),0===n.id.indexOf("frm-calc-box")&&et(n,!0)}o.addClass("frm-open"),n.classList.remove("frm_hidden"),wp.hooks.doAction("frm_show_inline_modal",n,e)}}(this,void 0,e)}function Tn(e){e.preventDefault(),this.parentNode.classList.add("frm_hidden"),jQuery('.frm-open [data-open="'.concat(this.parentNode.id,'"]')).closest(".frm-open").removeClass("frm-open")}function On(e){var t=e.target;t.closest(".frm-inline-modal.frm-modal-no-dismiss")||t.closest(".frm-show-inline-modal")||t.closest("#frm_adv_info")||t.closest(".frm-token-proxy-input")||document.querySelectorAll(".frm-inline-modal.frm-modal-no-dismiss:not(.frm_hidden)").forEach(function(e){e.classList.add("frm_hidden"),e.previousElementSibling.classList.remove("frm-open")})}function Fn(){var e,t=this.getAttribute("data-frmchange").split(",");for(e=0;e').before(' ')}function Zn(){var e="success";"options[edit_action]"===this.name&&(e="edit");var t=jQuery(this).val();jQuery(".".concat(e,"_action_box")).hide(),"redirect"===t?jQuery(".".concat(e,"_action_redirect_box.").concat(e,"_action_box")).fadeIn("slow"):"page"===t?jQuery(".".concat(e,"_action_page_box.").concat(e,"_action_box")).fadeIn("slow"):jQuery(".".concat(e,"_action_message_box.").concat(e,"_action_box")).fadeIn("slow")}function eo(e){var t,r,n;if(e.stopPropagation(),!function(e){var t=jQuery(e),r=t.closest(".frm_form_action_settings"),n=r.find(".widget-inside");if(n.find("p, div, table").length)return!1;var o=r.find(".widget-top");return o.one("frm-action-loaded",function(){t.trigger("click"),r.removeClass("open"),n.hide()}),o.trigger("click"),!0}(e.target)){var o=e.target.closest(".frm_form_action_settings"),i=o.querySelectorAll(".wp-editor-area");i.length&&i.forEach(function(e){tinymce.EditorManager.execCommand("mceRemoveEditor",!0,e.id)});var a=jQuery(o).clone(),l=a.attr("id").replace("frm_form_action_",""),s=to(l),d=null===(t=o.querySelector(".frm_action_name"))||void 0===t?void 0:t.value,f=function(e,t){for(var r=new Set(t),n=e,o=2;r.has(n);)n="".concat(e," (").concat(o,")"),o++;return n}((null!==(r=null===(n=o.querySelector(".widget-title h4 span:not(.frm-border-icon)"))||void 0===n?void 0:n.textContent.trim())&&void 0!==r?r:"").replace(/ \(\d+\)$/,""),ro(d));a[0].querySelector(".widget-title h4 span:not(.frm-border-icon)").textContent=f,a[0].querySelector('input[name$="['.concat(l,'][post_title]"]')).value=f,a.find(".frm_action_id, .frm-btn-group").remove(),a.find('input[name$="['.concat(l,'][ID]"]')).val(""),a.find(".widget-inside").hide(),a.find("input[type=text], textarea, input[type=number]").prop("defaultValue",function(){return this.value}),a.find("input[type=checkbox], input[type=radio]").prop("defaultChecked",function(){return this.checked});var u=new RegExp("\\[".concat(l,"\\]"),"g"),m=new RegExp("_".concat(l,'"'),"g"),_=new RegExp("_".concat(l," "),"g"),p=new RegExp("-".concat(l,'"'),"g"),g=new RegExp('"'.concat(l,'"'),"g"),y=a.html().replace(u,"[".concat(s,"]")).replace(m,"_".concat(s,'"'));y=(y=y.replace(_,"_".concat(s," "))).replace(p,"-".concat(s,'"')).replace(g,'"'.concat(s,'"'));var v=c({id:"frm_form_action_".concat(s),className:a.get(0).className});v.setAttribute("data-actionkey",s),v.innerHTML=y,v.querySelectorAll(".wp-editor-wrap, .wp-editor-wrap *").forEach(function(e){"string"==typeof e.className&&(e.className=e.className.replace(l,s)),e.id=e.id.replace(l,s)}),v.classList.remove("open"),document.getElementById("frm_notification_settings").append(v),i.length&&(i.forEach(function(e){frmDom.wysiwyg.init(e)}),v.querySelectorAll(".wp-editor-area").forEach(function(e){frmDom.wysiwyg.init(e)})),v.classList.contains("frm_single_on_submit_settings")&&v.querySelector("input.frm-page-search")&&bi(v),ui(),wp.hooks.doAction("frm_after_duplicate_action",v)}}function to(e){var t=parseInt(e,10)+11;return document.getElementById("frm_form_action_".concat(t))&&(t=to(++t)),t}function ro(e){return Array.from(document.querySelectorAll(".frm_single_".concat(e,"_settings .widget-title h4 span:not(.frm-border-icon)")),function(e){return e.textContent.trim()})}function no(){var e,t=jQuery(this).data("actiontype");if(!fo(t)){var r=(e=Lr(document.querySelectorAll(".frm_form_action_settings"),"frm_form_action_"),void 0!==document.getElementById("frm_form_action_".concat(e))&&(e+=100),S>=e&&(e=S+1),S=e,e),n=k,o=ro(t),i=document.createElement("div");i.classList.add("frm_single_".concat(t,"_settings"));var a=document.getElementById("frm_notification_settings");a.append(i),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_action",type:t,list_id:r,form_id:n,nonce:frmGlobal.nonce,existing_titles:o},success:function(e){var n;Ro(),i.remove(),null===(n=document.querySelector(".frm-no-actions-message"))||void 0===n||n.classList.add("frm_hidden"),document.querySelectorAll(".frm_form_action_settings.open").forEach(function(e){return e.classList.remove("open")});var o=c();o.innerHTML=e;var l=o.querySelector(".widget-top");Array.from(o.children).forEach(function(e){return a.append(e)}),jQuery(".frm_form_action_settings").fadeIn("slow");var s,d,f=document.getElementById("frm_form_action_".concat(r));f.classList.add("open"),document.getElementById("post-body-content").scroll({top:f.offsetTop+10,left:0,behavior:"smooth"}),co(t),(d=["stripe","square","paypal"]).includes(s=t)&&d.forEach(function(e){e!==s&&co(e)}),Yn("#frm_form_action_".concat(r)),ui(),bi(f),l&&jQuery(l).trigger("frm-action-loaded"),frmAdminBuild.hooks.doAction("frm_added_form_action",f)}})}}function oo(e){e.on("Change",function(){!function(e){(function(){var e=document.querySelector(".frm-single-settings:not(.frm_hidden)");if(!e)return!1;var t=e.querySelector(".wp-editor-wrap");return t&&t.classList.contains("tmce-active")})()&&!tinyMCE.activeEditor.isHidden()&&(e.targetElm.value=e.getContent(),jQuery(e.targetElm).trigger("change"))}(e)})}function io(e){var t=this;if(null!==e)return this.fragment=document.createDocumentFragment(),this.initOnceInAllInstances=function(){void 0===io.prototype.endMarker&&(io.prototype.endMarker=document.getElementById("frm-end-form-marker"))},this.append=function(e){var r=e?e.parentElement.classList:"";e&&(r.contains("frm_field_box")||r.contains("divider_section_only"))&&t.fragment.append(e)},this.moveFields=function(){j.insertBefore(t.fragment,io.prototype.endMarker)},this.initOnceInAllInstances(),void 0!==e?(this.append(e),void this.moveFields()):{append:this.append,moveFields:this.moveFields}}function ao(){var e=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),t=this.getAttribute("data-emailrow");jQuery("#frm_form_action_".concat(e," .frm_").concat(t,"_row")).fadeIn("slow"),jQuery(this).fadeOut("slow")}function lo(){var e=jQuery(this).closest(".frm_form_action_settings"),t=this.getAttribute("data-emailrow"),r=".frm_".concat(t,"_row"),n=".frm_".concat(t,"_button");jQuery(e).find(n).fadeIn("slow"),jQuery(e).find(r).fadeOut("slow",function(){jQuery(e).find("".concat(r," input")).val("")})}function so(){var e=jQuery(this).closest(".frm_form_action_settings"),t=".frm_from_to_match_row";e.find('input[name$="[post_content][from]"]').val()===e.find('input[name$="[post_content][email_to]"]').val()?jQuery(e).find(t).fadeIn("slow"):jQuery(e).find(t).fadeOut("slow")}function co(e){var t,r,n=document.querySelectorAll(".frm_".concat(e,"_action"));fo(e)?(t=n,r=uo(e)>0,t.forEach(function(e){e.classList.remove("frm_active_action"),e.classList.add("frm_inactive_action"),r&&e.classList.add("frm_already_used")})):n.forEach(function(e){e.querySelector(".frm_show_upgrade")||(e.classList.remove("frm_inactive_action","frm_already_used"),e.classList.add("frm_active_action"))})}function fo(e){var t=function(e){return["paypal","stripe","square"].includes(e)&&(e="payment"),jQuery(".frm_single_".concat(e,"_settings")).length}(e)>=uo(e),r={type:e};return wp.hooks.applyFilters("frm_action_at_limit",t,r)}function uo(e){return parseInt(jQuery(".frm_".concat(e,"_action")).data("limit"),10)}function mo(){var e=a.only_one_action,t=this.dataset.limit;void 0!==t&&((t=parseInt(t))>1?e=e.replace(1,t).trim():e+=" ".concat(a.edit_action_text)),M(e)}function _o(e,t){var r=jQuery(t).closest(".frm_form_action_settings").find(".frm_action_name").val(),n=document.getElementById("form_id").value,o=document.getElementById("frm_logic_row_".concat(e)),i=Lr(o.querySelectorAll(".frm_logic_row"),"frm_logic_".concat(e,"_")),a=c({id:"frm_logic_".concat(e,"_").concat(i),className:"frm_logic_row frm_hidden"}),l=document.getElementById("logic_link_".concat(e)),s=l?o.closest(".frm_logic_rows"):null;o.append(a),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_form_logic_row",email_id:e,form_id:n,meta_name:i,type:r,nonce:frmGlobal.nonce},success:function(e){a.insertAdjacentHTML("beforebegin",e),a.remove();var t=o.querySelector(".frm_logic_row:last-child"),r=t?t.querySelector(".frm-logic-rule-text"):null;r&&(r.textContent=o.dataset.ruleText||""),l&&l.classList.add("frm_hidden"),s&&(s.classList.remove("frm_hidden"),s.style.display="")}})}function po(){return _o(jQuery(this).data("emailkey"),this),!1}function go(){var e;if(this.checked){var t=this.getAttribute("data-emailkey");if(t&&null!==(e=this.dataset.toggleclass)&&void 0!==e&&e.startsWith("frm_logic_rows_")){var r=document.getElementById("frm_logic_row_".concat(t));r&&!r.querySelector(".frm_logic_row")&&_o(t,this)}}}function yo(){var e=jQuery("select.frm_single_post_field");e.css("border-color","");var t=this,r=jQuery(t).val();if(""===r||"checkbox"===r)return!1;e.each(function(){if(jQuery(this).val()===r&&this.name!==t.name)return this.style.borderColor="red",jQuery(t).val(""),M(a.field_already_used),!1})}function vo(){var e=jQuery(this).val();""===e?(jQuery(".frm_post_content_opt, select.frm_dyncontent_opt").hide().val(""),jQuery(".frm_dyncontent_opt").hide()):"post_content"===e?(jQuery(".frm_post_content_opt").show(),jQuery(".frm_dyncontent_opt").hide(),jQuery("select.frm_dyncontent_opt").val("")):(jQuery(".frm_post_content_opt").hide().val(""),jQuery("select.frm_dyncontent_opt, .frm_form_field.frm_dyncontent_opt").show())}function ho(){var e=jQuery(this).val(),t=jQuery(document.getElementById("frm_dyncontent"));""===e||"new"===e?(t.val(""),jQuery(".frm_dyncontent_opt").show()):jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_display_get_content",id:e,nonce:frmGlobal.nonce},success:function(e){t.val(e),jQuery(".frm_dyncontent_opt").show()}})}function bo(){var e,t,r=document.getElementById("frm_posttax_rows").childNodes,n=document.querySelector(".frm_post_parent_field"),o=document.querySelector(".frm_post_menu_order_field"),i=this.value;jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_replace_posttax_options",post_type:i,nonce:frmGlobal.nonce},success:function(n){for(var o=0;o');var e=jQuery(this).closest(".frm_form_action_settings").find('select[name$="[post_content][post_type]"]').val(),t=jQuery(this).closest(".frm_form_action_settings").data("actionkey"),r=jQuery(this).closest(".frm_posttax_row").attr("id").replace("frm_posttax_",""),n=jQuery(this).val(),o=jQuery(document.getElementById("".concat(r,"_show_exclude"))).is(":checked")?1:0,i=jQuery('select[name$="[post_category]['.concat(r,'][field_id]"]')).val(),a=jQuery('input[name="id"]').val();jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_add_posttax_row",form_id:a,post_type:e,tax_key:r,action_key:t,meta_name:n,field_id:i,show_exclude:o,nonce:frmGlobal.nonce},success:function(e){jQuery(document.getElementById("frm_posttax_".concat(r))).replaceWith(e)}})}}function Eo(){var e=jQuery(this).closest(".frm_postmeta_row"),t=e.find(".frm_cancelnew"),r=e.find(".frm_enternew");return e.find("select.frm_cancelnew").is(":visible")?(t.hide(),r.show()):(t.show(),r.hide()),e.find("input.frm_enternew, select.frm_cancelnew").val(""),!1}function Ao(){var e=jQuery(this),t=e.val();"checkbox"===e.attr("type")&&!1===this.checked&&(t="");var r=e.data("toggleclass");""===t?jQuery(".".concat(r)).hide():(jQuery(".".concat(r)).show(),jQuery(".hide_".concat(r,"_").concat(t)).hide())}function So(){Wn()||(Kn(this),Rn(document.querySelector(".frm_form_settings")))}function Lo(e){return e.preventDefault(),Io(jQuery(this),this.getAttribute("data-code")),!1}function Io(e,t){var r=!1,n=e;if("object"===o(e)){if(e.hasClass("frm_noallow"))return;void 0===(n=jQuery(e).closest("[data-fills]").attr("data-fills"))&&void 0!==(n=e.closest("div").attr("class"))&&(n=n.split(" ")[1])}if(void 0===n){var i=document.activeElement;"search"===i.type?null===(n=i.id.replace("-search-input","")).match(/\d/gi)&&(n=(i=jQuery(".frm-single-settings:visible .".concat(n))).attr("id")):n=i.id}n&&(r=jQuery("#wp-".concat(n,"-wrap.wp-editor-wrap")).length>0);var a=jQuery(document.getElementById(n));if(void 0===e.attr("data-shortcode")&&(!a.length||void 0===a.attr("data-shortcode"))){var l=e.parents("ul.frm_code_list").attr("data-shortcode");"undefined"!==l&&"no"===l||(t="[".concat(t,"]"))}if(r&&(wpActiveEditor=n),!a.length)return!1;if("[default-html]"===t||"[default-plain]"===t){var s=0;"[default-plain]"===t&&(s=1),jQuery.ajax({type:"POST",url:ajaxurl,data:{action:"frm_get_default_html",form_id:jQuery('input[name="id"]').val(),plain_text:s,nonce:frmGlobal.nonce},elementId:n,success:function(e){if(r){var t=document.createElement("p");t.innerText=e,send_to_editor(t.innerHTML)}else qo(a,e)}})}else t=function(e,t,r){return"object"===o(t)&&t instanceof jQuery&&0===r[0].id.indexOf("success_url_")&&(t=t[0]).closest("#frm-insert-fields-box")?(t.parentNode.classList.contains("frm_insert_url")||(e=e.replace("]"," sanitize_url=1]")),e):e}(t,e,a),r?send_to_editor(t):qo(a,t);return!1}function qo(e,t){if(document.selection)e[0].focus(),document.selection.createRange().text=t;else{var r=e[0],n=r.selectionEnd;t=function(e,t,r,n){var o=e.data("sep");if(void 0===o)return t;var i=e.val();if(!i.trim().length)return t;var a=new RegExp("".concat(o,"\\s*$")),l=new RegExp("^\\s*".concat(o));return i.substr(0,r).trim().length&&!1===a.test(i.substr(0,r))&&(t=o+t),i.substr(n,i.length).trim().length&&!1===l.test(i.substr(n,i.length))&&(t+=o),t}(e,t,r.selectionStart,n),r.value=r.value.substr(0,r.selectionStart)+t+r.value.substr(r.selectionEnd,r.value.length);var o=n+t.length;!function(e,t){if(e.classList.contains("frm_classes")&&Bo(t)){var r=e.value.split(" ").filter(Bo);r.length&&(e.value=function(e,t,r){var n=e.split(" ").filter(function(e){return(e=e.trim()).length&&!t.includes(e)});return n.includes(r)||n.push(r),n.join(" ")}(e.value,r,t.trim()))}}(r,t),r.focus(),r.setSelectionRange(o,o)}Gn(e)}function Bo(e){return["frm_half","frm_third","frm_two_thirds","frm_fourth","frm_three_fourths","frm_fifth","frm_sixth","frm2","frm3","frm4","frm6","frm8","frm9","frm10","frm12"].includes(e.trim())}function Co(){var e=document.getElementById("frm-id-condition"),t=document.getElementById("frm-key-condition");"id"===this.value?(e.classList.remove("frm_hidden"),t.classList.add("frm_hidden"),Li(t,"change")):(e.classList.add("frm_hidden"),t.classList.remove("frm_hidden"),Li(e,"change"))}function No(){var e=document.getElementById("frm-id-key-condition-id").checked?"frm-id-condition":"frm-key-condition",t=document.getElementById("frm-is-condition").value,r=document.getElementById("frm-text-condition").value,n=document.getElementById("frm-insert-condition"),o=(e=document.getElementById(e)).options[e.selectedIndex].value,i="if ".concat(o," ").concat(t,'="').concat(r,'"]');n.setAttribute("data-code","".concat(i+a.conditional_text,"[/if ").concat(o)),n.innerHTML="[".concat(i,"[/if ").concat(o,"]")}function To(e){return e.getAttribute("href")||e.getAttributeNS("http://www.w3.org/1999/xlink","href")}function Oo(e){var t;e.parentNode.parentNode.classList.contains("frm_has_shortcodes")&&(Xo(),"use"===(t=Jo(e)).tagName?To(t=t.firstElementChild).includes("frm_close_icon")||Ho(t,"nofocus"):t.classList.contains("frm_close_icon")||Ho(t,"nofocus"))}function Fo(e){e.preventDefault(),e.stopPropagation(),Ho(this)}function Do(e){!function(e){var t;if(e.id.startsWith("field_options_type_")){var r=e.id.split("_"),n=r.length&&r[r.length-1];null!==(t=document.querySelector("#frm-single-settings-".concat(n)))&&void 0!==t&&t.classList.contains("frm-type-".concat(e.value))||Mo()}}(e.target)}function Mo(e){var t;void 0===e&&(e=I("You are changing the field type. Not all field settings will appear as expected until you reload the page. Would you like to reload the page now?","formidable")),frmDom.modal.maybeCreateModal("frmSaveAndReloadModal",{title:I("Save and Reload?","formidable"),content:(t=c(e),t.style.padding="var(--gap-md)",t),footer:function(){var e=frmDom.modal.footerButton({text:I("Save and Reload","formidable"),buttonType:"primary"});_(e,function(){var e;(e=document.getElementById("frm_submit_side_top")).classList.contains("frm_submit_ajax")&&e.setAttribute("data-new-addon-installed",!0),e.click()});var t=frmDom.modal.footerButton({text:I("Cancel","formidable"),buttonType:"cancel"});return t.classList.add("dismiss"),frmDom.div({children:[t,e]})}()})}function Po(e){var t;if(e instanceof Event){var r=document.querySelectorAll(".frm-single-settings .frm-show-box.frmsvg use"),n=Array.from(r).find(function(e){return"#frm_close_icon"===e.getAttribute("href")});if(void 0===n)return;t=n.parentElement}else t=e;var o=t.getBoundingClientRect(),i=document.getElementById("frm_adv_info"),a=i.parentElement.getBoundingClientRect();i.style.top="".concat(o.top-a.top+32,"px"),i.style.left="".concat(o.left-a.left-280,"px")}function Ho(e,t){var r=Ko(e),n=document.getElementById("frm_adv_info"),o=e.className;if("svg"===e.tagName&&(e=e.firstElementChild),"use"===e.tagName&&(o=To(e)),o.includes("frm_close_icon"))Xo(n);else{if(Po(e),jQuery(".frm_code_list a").removeClass("frm_noallow"),r.classList.contains("frm_not_email_to")?jQuery("#frm-insert-fields-box .frm_code_list li:not(.show_frm_not_email_to) a").addClass("frm_noallow"):r.classList.contains("frm_not_email_subject")&&jQuery(".frm_code_list li.hide_frm_not_email_subject a").addClass("frm_noallow"),n.setAttribute("data-fills",r.id),n.style.display="block","use"===e.tagName)if(e.hasAttributeNS("http://www.w3.org/1999/xlink","href"))e.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon");else{var l=document.createElementNS("http://www.w3.org/2000/svg","use");l.setAttributeNS("http://www.w3.org/1999/xlink","href","#frm_close_icon"),e.parentNode.replaceChild(l,e)}else e.className=o.replace("frm_more_horiz_solid_icon","frm_close_icon");"nofocus"!==t&&("none"!==r.style.display?r.focus():jQuery(tinymce.get(r.id)).trigger("focus")),function(e){["address","body"].forEach(function(t){!function(e,t){var r,n=a.contextualShortcodes["".concat(t,"Selector")],o=a.contextualShortcodes[t],l=e.matches(n),s=i(o);try{for(s.s();!(r=s.n()).done;){var c,d=r.value,f=null===(c=document.querySelector('#frm-adv-info-tab .frm_code_list [data-code="'.concat(d,'"]')))||void 0===c?void 0:c.closest("li");null==f||f.classList.toggle("frm_hidden",!l)}}catch(e){s.e(e)}finally{s.f()}}(e,t)})}(r)}}function zo(e){return 0===a.contextualShortcodes.length||!function(e){var t=e.querySelector("a");if(!t)return!1;var r=t.dataset.code;return a.contextualShortcodes.address.includes(r)||a.contextualShortcodes.body.includes(r)}(e)||function(e){var t=e.querySelector("a").dataset.code,r=document.getElementById("frm_adv_info").dataset.fills,n=document.getElementById(r),o=a.contextualShortcodes;return o.address.includes(t)?n.matches(o.addressSelector):n.matches(o.bodySelector)}(e)}function Ro(){x||(x=1,window.addEventListener("beforeunload",$o))}function Go(){x=0}function Uo(){x=0}function Wo(){x=0}function $o(e){x&&(e.preventDefault(),e.returnValue="")}function Vo(e,t){var r={my:"top",at:"top+".concat(t),of:window};e.dialog("option","position",r)}function Ko(e){if(e.classList.contains("frm-input-icon"))return e.previousElementSibling;for(var t,r=e.nextElementSibling;r&&("INPUT"!==r.tagName&&"TEXTAREA"!==r.tagName||r.classList.contains("frm-token-input-field"));)r=Ko(r);return r||(r=null===(t=e.closest(".frm-field-formula"))||void 0===t?void 0:t.querySelector(".frm-calc-field")),r}function Jo(e){var t;if(null!==(t=e.nextElementSibling)&&void 0!==t&&t.classList.contains("frm-input-icon"))return e.nextElementSibling;for(var r=e.previousElementSibling;null!==r&&"I"!==r.tagName&&"svg"!==r.tagName;)r=Jo(r);return r}function Xo(e){if((void 0!==e||(e=document.getElementById("frm_adv_info")))&&null===document.getElementById("frm_dyncontent")){e.style.display="none";for(var t=document.querySelectorAll(".frm-show-box.frm_close_icon"),r=0;r".concat(r.data.name,": ").concat(r.data.msg,""):'Imported ').concat(r.data.name,"
"),e.find(".status").prepend(n),e.find(".status").show(),C.importQueue=jQuery.grep(C.importQueue,function(e){return e!=t}),C.imported++,0===C.importQueue.length?(e.find(".process-count").hide(),e.find(".forms-completed").text(C.imported),e.find(".process-completed").show()):(e.find(".form-current").text(C.imported+1),ni(e)))})}function oi(e){e.preventDefault();var t=!1,r=jQuery('input[name="frm_export_forms[]"]');jQuery('input[name="frm_export_forms[]"]:checked').val()||(r.closest(".frm-table-box").addClass("frm_blank_field"),t="stop");var n=jQuery('input[name="type[]"]');if(jQuery('input[name="type[]"]:checked').val()||"checkbox"!==n.attr("type")||(n.closest("p").addClass("frm_blank_field"),t="stop"),"stop"===t)return!1;e.stopPropagation(),this.submit()}function ii(){var e=jQuery(this).closest(".frm_blank_field");if(void 0!==e){var t=this.name;("type[]"===t&&jQuery('input[name="type[]"]:checked').val()||"frm_export_forms[]"===t&&jQuery(this).val())&&e.removeClass("frm_blank_field")}}function ai(){null!==jQuery(this).val().match(/\.csv$/i)?jQuery(".show_csv").fadeIn():jQuery(".show_csv").fadeOut()}function li(){var e=document.querySelector('select[name="format"]');return e?e.value:""}function si(e){var t,r,n=e.target.value;di(n),ci.call(e.target),t=n,r=document.getElementById("frm-export-select-all"),"csv"===t?(r.checked=!1,r.disabled=!0):r.disabled=!1}function ci(){var e=jQuery(this),t=e.find(":selected"),r=t.data("support"),n=r.indexOf("|");jQuery('input[name="type[]"]').each(function(){this.checked=!1,r.includes(this.value)?(this.disabled=!1,-1===n&&(this.checked=!0)):this.disabled=!0}),"csv"===e.val()?(jQuery(".csv_opts").show(),jQuery(".xml_opts").hide()):(jQuery(".csv_opts").hide(),jQuery(".xml_opts").show());var o=t.data("count"),i=jQuery('input[name="frm_export_forms[]"]');"single"===o?(i.prop("multiple",!1),i.prop("checked",!1)):(i.prop("multiple",!0),i.prop("disabled",!1)),e.trigger("change")}function di(e){if(""!==e){var t=document.querySelectorAll(".frm-is-repeater");t.length&&("csv"===e?t.forEach(function(e){e.classList.remove("frm_hidden")}):t.forEach(function(e){e.classList.add("frm_hidden")}),Ei.call(document.querySelector(".frm-auto-search")))}}function fi(){var e=jQuery("select[name=format]").find(":selected").data("count"),t=jQuery('input[name="frm_export_forms[]"]');"single"===e&&this.checked?(t.prop("disabled",!0),this.removeAttribute("disabled")):t.prop("disabled",!1)}function ui(){jQuery(".frm_multiselect").hide().each(frmDom.bootstrap.multiselect.init)}function mi(e){e.preventDefault(),gi(this,"frm_multiple_addons")}function _i(e){e.preventDefault(),gi(this,"frm_activate_addon")}function pi(e){e.preventDefault(),gi(this,"frm_install_addon")}function gi(e,t){r(1105).toggleAddonState(e,t)}function yi(){hi()}function vi(e){!function(e,t,r){var n=jQuery("#frm_leave_email_error");n.removeClass("frm_hidden").attr("frm-error",r),jQuery("#frm_leave_email").one("keyup",function(){n.addClass("frm_hidden")})}(0,0,e)}function hi(){var e=document.getElementById("frmapi-email-form");jQuery.ajax({dataType:"json",url:e.getAttribute("data-url"),success:function(t){var r=t.renderedHtml;r=r.replace(/ ]*(formidableforms.css|action=frmpro_css)[^>]*>/gi,""),e.innerHTML=r}})}function bi(e){frmDom.autocomplete.initSelectionAutocomplete(e)}function ji(e){var t=this.parentNode.parentNode,r=t.elements.type.value;e.preventDefault(),this.classList.add("frm_loading_button"),Qi(t,r,this)}function wi(e){var t=this.elements.type.value,r=this.querySelector("button");e.preventDefault(),r.classList.add("frm_loading_button"),Qi(this,t,r)}function Qi(e,t,r){var n=function(e){var t,r,n={},o=e.elements;for(r=0;r .frm-with-line").forEach(function(e){var t=e.nextElementSibling;if(t){var r=t.querySelectorAll(":scope > li.frmbutton"),n=Array.from(r).every(function(e){return e.classList.contains("frm_hidden")});e.classList.toggle("frm_hidden",n)}}),jQuery(this).trigger("frmAfterSearch")}function Ai(e,t){return"s"!==t&&"s"!==e[e.length-1]&&"".concat(e,"s").includes(t)}function Si(e){e.stopPropagation()}function Li(e,t){var r=document.createEvent("HTMLEvents");r.initEvent(t,!1,!0),e.dispatchEvent(r)}function Ii(e,t){var r,n=new XMLHttpRequest,o="string"==typeof e?e:Object.keys(e).map(function(t){return"".concat(encodeURIComponent(t),"=").concat(encodeURIComponent(e[t]))}).join("&");return n.open("post",ajaxurl,!0),n.onreadystatechange=function(){if(n.readyState>3&&200==n.status){r=n.responseText;try{r=JSON.parse(r)}catch(e){}t(r)}},n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.setRequestHeader("Content-type","application/x-www-form-urlencoded"),n.send(o),n}function qi(e,t){e.classList.add("frm-fade"),setTimeout(t,1e3)}function Bi(e){jQuery(e).css("visibility","hidden")}function Ci(e){jQuery(e).css("visibility","visible")}function Ni(e,t){return r(4260).initModal(e,t)}function Ti(e,t,r){if("#"===t){var n=document.getElementById(e);if(void 0!==r)n.style.display=r?"block":"none";else{var o=n.style.display;n.style.display="none"===o?"block":"none"}}else void 0!==r?r?e.show():e.hide():e.is(":visible")?e.hide():e.show()}function Oi(){window.onbeforeunload=null;var e=jQuery(window);e.off("beforeunload.widgets"),e.off("beforeunload.edit-post")}function Fi(){var e=jQuery(this).closest(".frm-single-settings").data("fid"),t=document.getElementById("frm_field_id_".concat(e));if(t&&"form"===t.dataset.type)if(t=jQuery(t),this.options[this.selectedIndex].value){t.find(".frm-not-set")[0].classList.add("frm_hidden");var r=t.find(".frm-embed-message");r.html(r.data("embedmsg")+this.options[this.selectedIndex].text),t.find(".frm-embed-field-placeholder")[0].classList.remove("frm_hidden")}else t.find(".frm-not-set")[0].classList.remove("frm_hidden"),t.find(".frm-embed-field-placeholder")[0].classList.add("frm_hidden")}function Di(e){var t=e.target,r=t.value.trim();if(!r.includes("[")||!r.includes("]")){if(isNaN(r.replace(/,/,""))){var n=I("Please enter a valid number.","formidable");return frmAdminBuild.infoModal(n),void function(e){var t=document.querySelectorAll("#frm_info_modal .dismiss, #frm_info_modal #frm-info-click, .ui-widget-overlay.ui-front");function r(){e.classList.add("frm_invalid_field"),setTimeout(function(){return e.focus()},0),t.forEach(function(e){e.removeEventListener("click",r)})}t.forEach(function(e){e.addEventListener("click",r)})}(t)}t.classList.remove("frm_invalid_field")}}function Mi(){var e=jQuery(this).closest(".frm-single-settings"),t=e.find(".frmjs_product_choices"),r=e.find(".frm_prod_options_heading"),n=this.options[this.selectedIndex].value,o=e[0].querySelector(".frm_display_format_options");o&&o.setAttribute("data-product-type",n),t.removeClass("frm_prod_type_single frm_prod_type_user_def"),r.removeClass("frm_prod_user_def"),"single"===n?t.addClass("frm_prod_type_single"):"user_def"===n&&(t.addClass("frm_prod_type_user_def"),r.addClass("frm_prod_user_def")),wp.hooks.doAction("frm_product_type_toggled",n,e[0])}function Pi(e){var t=document.getElementById("frm_field_id_".concat(e));return!!t&&"product"===t.getAttribute("data-type")}function Hi(){var e=function(e,t){return window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]},t=function(e,t,r){window.frmCachedSubFields=window.frmCachedSubFields||{},window.frmCachedSubFields[e]=window.frmCachedSubFields[e]||{},window.frmCachedSubFields[e][t]=r},r=[1,2,3,4,5,6,7,8,9,10,11,12].map(function(e){return"frm".concat(e)}),o=["first","middle","last"];document.addEventListener("change",function(i){i.target.matches(".frm_name_layout_dropdown")&&function(i){var a,l=i.target.value.split("_"),s=i.target.dataset.fieldId,c=document.querySelector("#field_".concat(s,"_inner_container .frm_combo_inputs_container")),d=(a=l.length,"frm".concat(parseInt(12/a)));o.forEach(function(e){var o,i=c.querySelector('[data-sub-field-name="'.concat(e,'"]'));i&&(i.classList.add("frm_hidden"),(o=i.classList).remove.apply(o,n(r)),t(s,e,i))}),l.forEach(function(t){var r=e(s,t);r&&(r.classList.remove("frm_hidden"),r.classList.add(d),c.append(r))}),o.forEach(function(e){var r=document.querySelector(".frm_sub_field_options-".concat(e,'[data-field-id="').concat(s,'"]'));r&&(r.classList.add("frm_hidden"),t(s,"".concat(e,"_options"),r))}),l.forEach(function(t){var r=e(s,"".concat(t,"_options"));r&&r.classList.remove("frm_hidden")})}(i)},!1)}function zi(e,t){var r,n,o,i=!1,a=!1;(r=t.newOption?(new DOMParser).parseFromString(t.newOption,"text/html").body.childNodes[0]:t).querySelectorAll("svg").forEach(function(e){(n=e.getElementsByTagNameNS("http://www.w3.org/2000/svg","use")[0])&&("#frm_drag_icon"===(o=To(n))&&(i=!0),"#frm_save_icon"===o&&(a=!0))}),i||r.prepend(h.drag.cloneNode(!0)),r.querySelector("[id^=field_key_".concat(e,"-]"))&&!a&&r.querySelector("[id^=field_key_".concat(e,"-]")).after(h.save.cloneNode(!0)),t.newOption&&(t.newOption=r)}function Ri(){var e=document.getElementById("frm_leave_email").value.trim();if(""!==e)if(!1!==/^(([^<>()\[\]\\.,;:\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(e)){var t=jQuery("#frmapi-email-form").find("form"),r=t.find('[type="email"]').not(".frm_verify");if(r.length){if(document.getElementById("frm_empty_inbox")){document.getElementById("frm-add-my-email-address").remove();var n=document.getElementById("frm_leave_email_wrapper");if(n){n.classList.add("frm_hidden");var o=d({className:"frm-wait frm_spinner"});o.style.visibility="visible",o.style.float="none",o.style.width="unset",n.parentElement.insertBefore(o,n.nextElementSibling)}}r.val(e),jQuery.ajax({type:"POST",url:t.attr("action"),data:"".concat(t.serialize(),"&action=frm_forms_preview")}).done(function(e){if(jQuery(e).find(".frm_message").text().trim().includes("Thanks!")){var t=document.getElementById("frmapi-email-form").parentElement.querySelector(".frm_spinner");t&&t.remove(),wp.hooks.applyFilters("frm_thank_you_on_signup",!0)&&document.getElementById("frm_leave_email_wrapper").replaceWith(d(I("Thank you for signing up!","formidable")))}else vi("invalid")})}}else vi("invalid");else vi("empty")}function Gi(e){var t;if(O||e.stopPropagation(),!(e.target.classList.contains("frm-show-box")||null!==(t=e.target.parentElement)&&void 0!==t&&t.classList.contains("frm-show-box"))){var r=document.getElementById("frm_adv_info");r&&(r.dataset.fills===e.target.id&&void 0!==e.target.id||e.target.closest("#frm_adv_info")||"none"===r.style.display||Xo(r))}}return{init:function(){var e,t,o,i,a,l,s;!function(){jQuery(document).on("click","#frm-add-my-email-address",function(e){e.preventDefault(),Ri()});var e=document.getElementById("frm_empty_inbox"),t=document.getElementById("frm_leave_email");if(e&&t){var r=document.getElementById("frm-leave-email-modal");r.classList.remove("frm_hidden"),r.querySelector(".frm_modal_footer").classList.add("frm_hidden"),t.addEventListener("keyup",function(e){if("Enter"===e.key){var t=document.getElementById("frm-add-my-email-address");t&&t.click()}})}}(),t=document.querySelector(".frm-admin-footer-links"),o=null!==(e=document.querySelector(".frm_page_container"))&&void 0!==e?e:document.getElementById("wpbody-content"),t&&o&&(o.append(t),t.classList.remove("frm_hidden")),document.addEventListener("show.bs.dropdown",function(){z()}),C={},jQuery(".wp-admin").on("click",function(e){var t=jQuery(e.target),r=jQuery(".dropdown.open");!r.length||t.hasClass("dropdown")||t.closest(".dropdown").length||r.removeClass("open")}),jQuery("#frm_bs_dropdown:not(.open) a").on("click",St),void 0===k&&(k=jQuery(document.getElementById("form_id")).val()),document.querySelectorAll(".frm-warning-dismiss").forEach(function(e){_(e,Lt)}),frmAdminBuild.inboxBannerInit(),b.length>0?frmAdminBuild.buildInit():null!==document.getElementById("frm_notification_settings")?frmAdminBuild.settingsInit():null!==document.getElementById("frm_styling_form")?frmAdminBuild.styleInit():null!==document.getElementById("form_global_settings")?frmAdminBuild.globalSettingsInit():null!==document.getElementById("frm_export_xml")?frmAdminBuild.exportInit():null!==document.querySelector(".frm-inbox-wrapper")?frmAdminBuild.inboxInit():null!==document.getElementById("frm-welcome")?frmAdminBuild.solutionInit():(function(){if(document.body.classList.contains("frm-admin-page-entries")){var e=document.getElementById("screen-options-wrap");if(e){var t=c({className:"frm_warning_style",text:I("Only 10 columns can be selected at a time.","formidable")});t.style.margin=0;var r=e.querySelector("legend");r.parentNode.insertBefore(t,r.nextElementSibling);var n=Array.from(e.querySelectorAll('input[type="checkbox"]')),o=function(){n.reduce(function(e,t){return t.checked?e+1:e},0)>=10?(t.classList.remove("frm_hidden"),n.forEach(function(e){e.checked||(e.parentNode.classList.add("frm_noallow"),e.disabled=!0)})):t.classList.add("frm_hidden")};o(),n.forEach(function(e){e.addEventListener("change",function(e){e.target.checked?o():(t.classList.add("frm_hidden"),n.forEach(function(e){e.parentNode.classList.remove("frm_noallow"),e.disabled=!1}))})})}}}(),bi(),jQuery("[data-frmprint]").on("click",function(){return window.print(),!1})),jQuery(document).on("change","select[data-toggleclass], input[data-toggleclass]",Ao),function(){function e(e){var t=e.options[e.selectedIndex];e.querySelectorAll("option[data-dependency]:not([data-dependency-skip])").forEach(function(e){var r=document.querySelector(e.dataset.dependency);null==r||r.classList.toggle("frm_hidden",t!==e)})}document.querySelectorAll("select.frm_select_with_dependency").forEach(e),frmDom.util.documentOn("change","select.frm_select_with_dependency",function(t){return e(t.target)})}(),(jQuery(document.getElementById("frm_adv_info")).length>0||jQuery(".frm_field_list").length>0)&&frmAdminBuild.panelInit(),i=jQuery(".wrap, .frm_wrap"),a=document.getElementById("frm_confirm_modal"),l=!1,s=!1,jQuery(a).on("click","[data-deletefield]",xr),jQuery(a).on("click","[data-removeid]",R),jQuery(a).on("click","[data-trashtemplate]",ki),i.on("click",".frm_remove_tag, .frm_remove_form_action",R),i.on("click","a[data-frmverify]",F),i.on("click","a[data-frmtoggle]",P),i.on("click","a[data-frmhide], a[data-frmshow]",H),i.on("change","input[data-frmhide], input[data-frmshow]",H),i.on("click",".widget-top,a.widget-action",U),function(e){e.on("keydown",".widget-top",function(e){e.currentTarget===e.target&&("Enter"!==e.key&&" "!==e.key||(e.preventDefault(),U(e,e.currentTarget)))});var t=function(e){return function(t){t.key===e&&(t.preventDefault(),t.currentTarget.click())}};e.on("keydown",".frm_form_action_settings .frm_duplicate_form_action, .frm_form_action_settings .frm_remove_form_action",t(" ")),e.on("keydown",".frm_form_action_settings .frm_toggle",t("Enter"))}(i),i.on("mouseenter.frm",".frm_bstooltip, .frm_help",function(){jQuery(this).off("mouseenter.frm"),function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=e;(r.hasAttribute("data-toggle")||r.hasAttribute("data-bs-toggle"))&&(r.parentElement.setAttribute("title",r.getAttribute("title")),r.removeAttribute("title"),r.classList.remove("frm_bstooltip"),r.parentElement.classList.add("frm_bstooltip"),r=r.parentElement),jQuery(r).tooltip(),t&&(z(),jQuery(r).tooltip("show"))}(this,!0)}),jQuery(document).on("click","#doaction, #doaction2",function(e){var t="doaction"===this.id?"top":"bottom",r=document.getElementById("bulk-action-selector-".concat(t)),n=document.getElementById("confirm-bulk-delete-".concat(t));if(r&&n){if(l=this,!s&&"bulk_delete"===r.value)return e.preventDefault(),D(n),!1}else l=!1}),jQuery(document).on("click","#frm-confirmed-click",function(e){if(!1!==l&&!e.target.classList.contains("frm-btn-inactive"))return"confirm-bulk-delete"===this.getAttribute("href")?(e.preventDefault(),s=!0,l.click(),!1):void 0}),r(4260).initUpgradeModal(),frmDom.util.documentOn("click","[data-modal-title]",Jn);var d=jQuery(document.getElementById("frm_shortcodediv"));d.length>0&&(jQuery("a.edit-frm_shortcode").on("click",function(){return d.is(":hidden")&&(d.slideDown("fast"),this.style.display="none"),!1}),jQuery(".cancel-frm_shortcode","#frm_shortcodediv").on("click",function(){return d.slideUp("fast"),d.siblings("a.edit-frm_shortcode").show(),!1})),jQuery(document).on("click","#frm-nav-tabs a",W),jQuery(".post-type-frm_display .frm-nav-tabs a, .frm-category-tabs a").on("click",function(){var e=this.classList.contains("frm_show_upgrade_tab");if(!this.classList.contains("frm_noallow")||e)return e&&Xn(this),$(this),!1}),$(jQuery(".starttab a"),"auto"),jQuery(document).on("click","#frm-fid-search-menu a",function(){var e=this.id.replace("fid-","");return jQuery('select[name="fid"]').val(e),Rn(document.getElementById("posts-filter")),!1}),jQuery(".frm_select_box").on("click focus",function(){this.select()}),jQuery(document).on("input search change",".frm-auto-search:not(#frm-form-templates-page #template-search-input)",Ei),jQuery(document).on("focusin click",".frm-auto-search",Si);var f=jQuery(".frm-auto-search");""!==f.val()&&f.trigger("keyup"),FrmFormsConnect.init(),jQuery(document).on("click",".frm-install-addon",pi),jQuery(document).on("click",".frm-activate-addon",_i),jQuery(document).on("click",".frm-solution-multiple",mi),jQuery("button, input[type=submit]").on("click",Oi),document.addEventListener("click",function(e){if("LABEL"===e.target.nodeName){var t=e.target.getAttribute("for");if(t){var r=document.getElementById(t);if(r&&r.nextElementSibling){var n=r.nextElementSibling.querySelector("button.dropdown-toggle.multiselect");n&&setTimeout(function(){return n.click()},0)}}}}),frmAdminBuild.hooks.addFilter("frm_before_embed_modal",function(e,t){var r,n,o=t.element;if("form"!==t.type)return e;var i=o.closest("tr");if(i)r=parseInt(i.querySelector(".column-id").textContent),n=i.querySelector(".column-form_key").textContent;else{r=document.getElementById("form_id").value;var a=document.getElementById("frm_form_key");if(a)n=a.value;else{var l=document.getElementById("frm-previewDrop");l&&(n=l.nextElementSibling.querySelector(".dropdown-item a").getAttribute("href").split("form=")[1])}}return[r,n]}),document.querySelectorAll("#frm-show-fields > li, .frm_grid_container li").forEach(function(e,t){e.addEventListener("click",function(){var e,t,r;t=(null===(e=this.querySelector("li"))||void 0===e?void 0:e.dataset.fid)||this.dataset.fid,(r=document.querySelectorAll("[id^=frm_delete_field_".concat(t,"-]"))).length<2||n(r).slice(1).forEach(function(e,r){e.classList.contains("frm_other_option")||zi(t,e)})})});var u=document.getElementById("frm_small_screen_proceed_button");u&&_(u,function(){var e;null===(e=document.getElementById("frm_small_device_message_container"))||void 0===e||e.remove(),p("small_screen_proceed",new FormData)});var m=document.getElementById("frm_sale_banner"),g=null==m?void 0:m.querySelector(".dismiss");m&&(_(m,function(e){e.target.closest(".dismiss")||(window.location.href=m.getAttribute("data-url"))}),g&&_(g,function(){m.remove();var e=new FormData;p("sale_banner_dismiss",e)}))},buildInit:function(){jQuery("#frm_builder_page").on("mouseup","*:not(.frm-show-box)",Gi),g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return frmDom.util.debounce(e,t)}(ie,10),y=document.getElementById("post-body-content"),v=jQuery(y),jQuery(".frm_field_loading").length&&Ee(jQuery(".frm_field_loading").first().attr("id")),V("ul.frm_sorting"),document.querySelectorAll(".field_type_list > li:not(.frm_show_upgrade):not(.frm_show_update)").forEach(Y),jQuery("ul.field_type_list, .field_type_list li, ul.frm_code_list, .frm_code_list li, .frm_code_list li a, #frm_adv_info #category-tabs li, #frm_adv_info #category-tabs li a").disableSelection(),jQuery(".frm_submit_ajax").on("click",zn),jQuery(".frm_submit_no_ajax").on("click",Un),$n(),jQuery("a.edit-form-status").on("click",Ln),jQuery(".cancel-form-status").on("click",In),jQuery(".save-form-status").on("click",function(){var e=jQuery(document.getElementById("form_change_status")).val();return jQuery('input[name="new_status"]').val(e),jQuery(document.getElementById("form-status-display")).html(e),jQuery(".cancel-form-status").trigger("click"),!1}),jQuery(".frm_form_builder form").first().on("submit",function(){jQuery(".inplace_field").trigger("blur")}),ui(),Dr();var e,t=jQuery(j),r=document.getElementById("frm_form_editor_container");t.on("click",".frm_add_logic_row",Sr),t.on("click",".frm_add_watch_lookup_row",Ir),t.on("change",".frm_get_values_form",Or),t.on("change",".frm_logic_field_opts",Qn),t.on("frm-multiselect-changed",'select[name^="field_options[admin_only_"]',qn),jQuery(document.getElementById("frm-insert-fields")).on("click",".frm_add_field",Se),b.on("click",".frm_clone_field",Be),t.on("blur",'input[id^="frm_calc"]',Xe),t.on("change","input.frm_format_opt, input.frm_max_length_opt",st),t.on("change click","[data-changeme]",at),t.on("click","input.frm_req_field",ct),t.on("click",".frm_mark_unique",ft),t.on("change",".frm_repeat_format",Xr),t.on("change",".frm_repeat_limit",Yr),t.on("change",".frm_js_checkbox_limit",Zr),t.on("input",'input[name^="field_options[add_label_"]',function(){en(this,"add")}),t.on("input",'input[name^="field_options[remove_label_"]',function(){en(this,"remove")}),t.on("change",'select[name^="field_options[data_type_"]',Fr),jQuery(r).on("click",".frm-collapse-page",Mr),jQuery(r).on("click",".frm-collapse-section",zr),t.on("click",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",Rr),t.on("keydown",".frm-single-settings h3, .frm-single-settings h4.frm-collapsible",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),Rr.call(this,e))}),jQuery(r).on("show.bs.dropdown hide.bs.dropdown",ze),t.on("change",".frm_toggle_sep_values",vt),t.on("change",".frm_toggle_image_options",ht),t.on("click",".frm_remove_image_option",Et),t.on("click",".frm_choose_image_box",kt),t.on("change",".frm_hide_image_text",xt),t.on("change",".frm_field_options_image_size",wt),t.on("click",".frm_multiselect_opt",At),b.on("mousedown","input, textarea, select",It),b.on("click","input[type=radio], input[type=checkbox]",It),b.on("click",".frm_delete_field",Tt),b.on("click",".frm_select_field",Ot),jQuery(document).on("click",".frm_delete_field_group",Ft),jQuery(document).on("click",".frm_clone_field_group",Dt),jQuery(document).on("click","#frm_field_group_controls > span:first-child",Mt),jQuery(document).on("click",".frm-row-layout-option",Zt),jQuery(document).on("click",".frm-merge-fields-into-row .frm-row-layout-option",er),jQuery(document).on("click",".frm-custom-field-group-layout",rr),jQuery(document).on("click",".frm-merge-fields-into-row .frm-custom-field-group-layout",or),jQuery(document).on("click",".frm-break-field-group",cr),b.on("click","#frm_field_group_popup .frm_grid_container input",dr),jQuery(document).on("click",".frm-cancel-custom-field-group-layout",fr),jQuery(document).on("click",".frm-save-custom-field-group-layout",mr),b.on("click","ul.frm_sorting",_r),jQuery(document).on("click",".frm-merge-fields-into-row",jr),jQuery(document).on("click",".frm-delete-field-groups",Qr),b.on("click",'.frm-field-action-icons [data-toggle="dropdown"]',function(){this.closest("li.form-field").classList.add("frm-field-settings-open"),jQuery(document).on("click","#frm_builder_page",Oe)}),b.on("mousemove","ul.frm_sorting",Fe),b.on("show.bs.dropdown",".frm-field-action-icons",Pe),jQuery(document).on("show.bs.dropdown","#frm_field_group_controls",He),t.on("click",".frm_single_option a[data-removeid]",qt),t.on("mousedown",".frm_single_option input[type=radio]",Bt),t.on("focusin",".frm_single_option input[type=text]",Ct),t.on("click",".frm_add_opt",pt),t.on("change",".frm_single_option input",rn),t.on("change",".frm_image_id",rn),t.on("change",".frm_toggle_mult_sel",gt),b.on("click",".frm_primary_label",Ur),b.on("click",".frm_description",Wr),b.on("click","li.ui-state-default:not(.frm_noallow)",Vr),b.on("dblclick","li.ui-state-default",Jr),t.on("change",".frm_tax_form_select",tn),t.on("change","select.conf_field",ut),t.on("change",".frm_get_field_selection",xn),t.on("click",".frm-show-inline-modal",Nn),t.on("keydown",".frm-show-inline-modal",function(e){var t=e.key;"Enter"!==t&&" "!==t||(e.preventDefault(),Nn.call(this,e))}),t.on("click",".frm-inline-modal .dismiss",Tn),jQuery(document).on("change","[data-frmchange]",Fn),document.addEventListener("click",On),t.on("change",".frm_include_extras_field",tt),t.on("change",'select[name^="field_options[form_select_"]',Fi),jQuery(document).on("submit","#frm_js_build_form",Go),jQuery(document).on("change","#frm_builder_page input:not(.frm-search-input):not(.frm-custom-grid-size-input), #frm_builder_page select, #frm_builder_page textarea",Ro),ot(),frmDom.util.documentOn("change",".frm_product_price",Di),jQuery(document).on("change",".frmjs_prod_data_type_opt",Mi),jQuery(document).on("focus",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Br),jQuery(document).on("blur",'.frm-single-settings ul input[type="text"][name^="field_options[options_"]',Nr),frmDom.util.documentOn("click",".frm-show-field-settings",Vr),frmDom.util.documentOn("change","select.frm_format_dropdown, select.frm_phone_type_dropdown",Kr),t.on("keydown",'.frm_single_option input[name^="field_options["], .frm_single_option input[name^="rows_"]',function(e){"Enter"===e.key&&function(e){var t=e.closest(".frm_single_option").parentElement.querySelectorAll('.frm_single_option input[name^="field_options[" ], .frm_single_option input[name^="rows_"]'),r=Array.from(t),n=r.indexOf(e);if(!(n<0)){var o=r.slice(n+1).find(function(e){return null!==e.offsetParent});if(o){o.focus();var i=o.value.length;o.setSelectionRange(i,i)}}}(e.currentTarget)}),!1!==(e=Ni("#frm-bulk-modal","700px"))&&(jQuery(".frm-insert-preset").on("click",_t),jQuery(j).on("click","a.frm-bulk-edit-link",function(t){t.preventDefault();var r="",n=jQuery(this).closest("[data-fid]").data("fid"),o=vn(n),i=Pi(n),a=document.getElementById("frm_field_".concat(n,"_opts"));if(a){var l=a.getElementsByTagName("li");document.getElementById("bulk-field-id").value=n;for(var s=0;s=l.length-1&&(document.getElementById("frm_bulk_options").value=r)}return e.dialog("open"),!1}}),jQuery("#frm-update-bulk-opts").on("click",function(){var t=document.getElementById("bulk-field-id").value;document.getElementById("bulk-option-type").value||(this.classList.add("frm_loading_button"),frmAdminBuild.updateOpts(t,document.getElementById("frm_bulk_options").value,e),Ro())})),Cn(),document.addEventListener("frm_added_field",Cn),qe(),Hi(),An(),frmDom.util.documentOn("change",".frm_show_password_setting_input",function(e){var t=e.target.getAttribute("data-fid"),r=document.getElementById("frm_field_id_".concat(t));r&&r.classList.toggle("frm_disabled_show_password",!e.target.checked)}),document.addEventListener("scroll",Po,!0),document.addEventListener("change",Do),document.querySelector(".frm_form_builder").addEventListener("mousedown",function(e){e.shiftKey&&e.preventDefault()}),wp.hooks.addAction("frmShowedFieldSettings","formidableAdmin",function(e,t){t.querySelectorAll(".frm-collapse-me").forEach(Gr)},9999),frm_admin_js.pricingFieldsModal&&"object"===o(frm_admin_js.pricingFieldsModal)&&M(frm_admin_js.pricingFieldsModal,"550px")},settingsInit:function(){var e=jQuery(document.getElementById("frm_notification_settings"));e.on("click",".frm_email_buttons",ao),e.on("click",".frm_remove_field",lo),e.on("change",".frm_to_row, .frm_from_row",so),e.on("change",".frm_tax_selector",ko),e.on("change","select.frm_single_post_field",yo),e.on("change","select.frm_toggle_post_content",vo),e.on("change","select.frm_dyncontent_opt",ho),e.on("change",".frm_post_type",bo),e.on("click",".frm_add_postmeta_row",Qo),e.on("click",".frm_add_posttax_row",wo),e.on("click",".frm_toggle_cf_opts",Eo),e.on("click",".frm_duplicate_form_action",eo),jQuery(".frm_actions_list").on("click",".frm_active_action",no),jQuery(document).on("frmAfterSearch","#actions-search-input",G),ui(),document.querySelectorAll(".frm_actions_list a[data-actiontype]").forEach(function(e){return co(e.dataset.actiontype)}),jQuery(".frm_submit_settings_btn").on("click",So),$n();var t=jQuery(".frm_form_settings");t.on("click",".frm_add_form_logic",po),t.on("change","input[data-emailkey][data-toggleclass]",go),t.on("click",".frm_already_used",mo),document.addEventListener("click",function(e){var t=e.target;t.closest(".frm_image_preview_wrapper")&&(t.closest(".frm_choose_image_box")?kt.bind(t)(e):t.closest(".frm_remove_image_option")&&Et.bind(t)(e))}),t.on("mouseup","*:not(.frm-show-box)",Gi),jQuery(document.getElementById("no_save")).on("change",function(){this.checked&&!0!==confirm(a.no_save_warning)&&jQuery(this).attr("checked",!1)}),jQuery('select[name="options[edit_action]"]').on("change",Zn);var r=document.getElementById("logged_in");jQuery(r).on("change",function(){this.checked?Ci(".hide_logged_in"):Bi(".hide_logged_in")});var n=jQuery(document.getElementById("frm_cookie_expiration"));jQuery(document.getElementById("frm_single_entry_type")).on("change",function(){"cookie"===this.value?n.fadeIn("slow"):n.fadeOut("slow")});var o=document.getElementById("single_entry");jQuery(o).on("change",function(){this.checked?Ci(".hide_single_entry"):Bi(".hide_single_entry"),this.checked&&"cookie"===jQuery(document.getElementById("frm_single_entry_type")).val()?n.fadeIn("slow"):n.fadeOut("slow")}),jQuery(".hide_save_draft").hide();var i=jQuery(document.getElementById("save_draft"));i.on("change",function(){this.checked?jQuery(".hide_save_draft").fadeIn("slow"):jQuery(".hide_save_draft").fadeOut("slow")}),Gn(i);var l=document.getElementById("editable");jQuery(l).on("change",function(){this.checked?(jQuery(".hide_editable").fadeIn("slow"),Gn(document.getElementById("edit_action"))):(jQuery(".hide_editable").fadeOut("slow"),jQuery(".edit_action_message_box").fadeOut("slow"))}),jQuery(document).on("change","#protect_files",function(){this.checked?jQuery(".hide_protect_files").fadeIn("slow"):jQuery(".hide_protect_files").fadeOut("slow")}),jQuery(document).on("frm-multiselect-changed","#protect_files_role",qn),jQuery(document).on("submit",".frm_form_settings",Uo),jQuery(document).on("change","#form_settings_page input:not(.frm-search-input), #form_settings_page select, #form_settings_page textarea",Ro),bi(),jQuery(document).on("frm-action-loaded",Zo),frmDom.util.documentOn("change",'.frm_on_submit_type input[type="radio"]',function(e){if(e.target.checked){var t=e.target.closest(".frm_form_action_settings");t.querySelectorAll(".frm_on_submit_dependent_setting:not(.frm_hidden)").forEach(function(e){e.classList.add("frm_hidden")}),t.querySelectorAll(".frm_on_submit_dependent_setting[data-show-if-".concat(e.target.value,"]")).forEach(function(e){e.classList.remove("frm_hidden")}),t.setAttribute("data-on-submit-type",e.target.value)}}),wp.hooks.addAction("frm_reset_fields_updated","formidableAdmin",Wo)},panelInit:function(){jQuery(".frm_wrap, #postbox-container-1").on("click",".frm_insert_code",Lo),jQuery(document).on("change",".frm_insert_val",function(){Io(jQuery(this).data("target"),jQuery(this).val()),jQuery(this).val("")}),jQuery(document).on("click change",'[name="frm-id-key-condition"]',Co),jQuery(document).on("keyup change",".frm-build-logic",No),Yn(),jQuery(document).on("frmElementAdded",function(e,t){Yn(t)}),jQuery(document).on("mousedown",".frm-show-box",Fo);var e=document.getElementById("form_settings_page"),t=document.body.classList.contains("post-type-frm_display"),r=document.getElementById("frm_insert_fields_tab");(e||t||O)&&jQuery(document).on("focusin","form input, form textarea",function(n){var o,i,a;if(n.stopPropagation(),Oo(this),jQuery(this).is(":not(:submit, input[type=button], .frm-search-input, input[type=checkbox])")){if(jQuery(n.target).closest("#frm_adv_info").length)return;if(e||O)o=jQuery("#frm_html_tab"),jQuery(this).closest("#html_settings").length>0?(o.show(),o.siblings().hide(),jQuery("#frm_html_tab a").trigger("click"),void 0===(a=this.id)||a.includes("-search-input")||(jQuery("#frm-adv-info-tab").attr("data-fills",a.trim()),this.classList.contains("field_custom_html")&&(a="field_custom_html"),jQuery.inArray(a,["after_html","before_html","submit_html","field_custom_html"])>=0&&(jQuery(".frm_code_list li:not(.show_".concat(a,")")).addClass("frm_hidden"),jQuery(".frm_code_list li.show_".concat(a)).removeClass("frm_hidden")))):((i=jQuery(".frm-category-tabs li"))[0]&&(i[0].style.display=""),r.click(),o.hide(),o.siblings().show());else if(t){var l=new CustomEvent("frm_legacy_views_handle_field_focus");l.frmData={idAttrValue:this.id},document.dispatchEvent(l)}}}),jQuery(".frm_wrap, #postbox-container-1").on("mousedown","#frm_adv_info a, .frm_field_list a",function(e){e.preventDefault()});var n=jQuery("#frm_adv_info");n.on("click",".subsubsub a.frmids",function(e){Yo("frmids",e)}),n.on("click",".subsubsub a.frmkeys",function(e){Yo("frmkeys",e)})},inboxInit:function(){var e;jQuery(".frm_inbox_dismiss").on("click",function(e){var t=this.parentNode.parentNode,r=t.getAttribute("data-message"),n=this.getAttribute("href"),o=t.cloneNode(!0),i=document.querySelector(".frm-dismissed-inbox-messages");if("free_templates"!==r||this.classList.contains("frm_inbox_dismiss")){e.preventDefault();var a={action:"frm_inbox_dismiss",key:r,nonce:frmGlobal.nonce},l="frm_inbox_slide_in"===t.id;l&&(t.classList.remove("s11-fadein"),t.classList.add("s11-fadeout"),t.addEventListener("animationend",function(){return t.remove()},{once:!0})),Ii(a,function(){if(!l)return"#"!==n?(window.location=n,!0):void qi(t,function(){var e;i&&(o.classList.remove("frm-fade"),null===(e=o.querySelector(".frm-inbox-message-heading .frm_inbox_dismiss"))||void 0===e||e.remove(),i.append(o)),1===t.parentNode.querySelectorAll(".frm-inbox-message-container").length&&(document.getElementById("frm_empty_inbox").classList.remove("frm_hidden"),t.parentNode.closest(".frm-active").classList.add("frm-empty-inbox"),yi()),t.remove()})})}}),!1===(null===(e=document.getElementById("frm_empty_inbox"))||void 0===e?void 0:e.classList.contains("frm_hidden"))&&yi()},solutionInit:function(){jQuery(document).on("submit","#frm-new-template",wi)},styleInit:function(){var e=jQuery(".frm_image_preview_wrapper");e.on("click",".frm_choose_image_box",kt),e.on("click",".frm_remove_image_option",Et),wp.hooks.doAction("frm_style_editor_init")},customCSSInit:function(){console.warn("Calling frmAdminBuild.customCSSInit is deprecated.")},globalSettingsInit:function(){jQuery(document).on("click","[data-frmuninstall]",ei),ui();var e=document.getElementById("licenses_settings");e&&jQuery(e).on("click",".edd_frm_save_license",ti),jQuery(document).on("click","#frm-new-template button",ji),jQuery("#frm-dismissable-cta .dismiss").on("click",function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_lite_settings_upgrade",nonce:frmGlobal.nonce}),jQuery(".settings-lite-cta").remove()});var t=document.getElementById("frm_re_type");t&&t.addEventListener("change",xi),document.querySelector(".frm_captchas").addEventListener("change",function(e){var t,r=null===(t=document.querySelector('.frm_captchas input[checked="checked"]'))||void 0===t?void 0:t.value,n=e.target.value!==r;document.querySelector(".captcha_settings .frm_note_style").classList.toggle("frm_hidden",!n)}),frmDom.util.documentOn("submit",".frm_settings_form",function(){x=0});var r=document.getElementById("manage_styles_settings");r&&r.addEventListener("change",function(e){var t=e.target;"SELECT"===t.nodeName&&t.dataset.name&&!t.getAttribute("name")&&t.setAttribute("name",t.dataset.name)});var n=document.getElementById("payments_settings"),o=null==n?void 0:n.querySelectorAll('[name="frm_payment_section"]');o&&o.forEach(function(e){e.addEventListener("change",function(){if(e.checked){var t=n.querySelector('label[for="'.concat(e.id,'"]'));t&&t.setAttribute("aria-selected","true"),o.forEach(function(t){if(t!==e){var r=n.querySelector('label[for="'.concat(t.id,'"]'));r&&r.setAttribute("aria-selected","false")}})}})})},exportInit:function(){jQuery(".frm_form_importer").on("submit",ri),jQuery(document.getElementById("frm_export_xml")).on("submit",oi),jQuery("#frm_export_xml input, #frm_export_xml select").on("change",ii),jQuery('input[name="frm_import_file"]').on("change",ai),document.querySelector('select[name="format"]').addEventListener("change",si),jQuery('input[name="frm_export_forms[]"]').on("click",fi),ui(),jQuery(".frm-feature-banner .dismiss").on("click",function(e){e.preventDefault(),jQuery.post(ajaxurl,{action:"frm_dismiss_migrator",plugin:this.id,nonce:frmGlobal.nonce}),this.parentElement.remove()}),di(li()),document.querySelector("#frm-export-select-all").addEventListener("change",function(e){document.querySelectorAll('[name="frm_export_forms[]"]').forEach(function(t){t.checked=e.target.checked})})},inboxBannerInit:function(){var e=document.getElementById("frm_banner");if(e){var t=e.querySelector(".frm-banner-dismiss");document.addEventListener("click",function(r){r.target===t&&Ii({action:"frm_inbox_dismiss",key:e.dataset.key,nonce:frmGlobal.nonce},function(){jQuery(e).fadeOut(400,function(){e.remove()})})})}},updateOpts:function(e,t,r){var n=vn(e),o=Pi(e)?"frm_bulk_products":"frm_import_options";jQuery.ajax({type:"POST",url:ajaxurl,data:{action:o,field_id:e,opts:t,separate:n,nonce:frmGlobal.nonce},success:function(t){document.getElementById("frm_field_".concat(e,"_opts")).innerHTML=t,wp.hooks.doAction("frm_after_bulk_edit_opts",e),an(e),void 0!==r&&(r.dialog("close"),document.getElementById("frm-update-bulk-opts").classList.remove("frm_loading_button"))}})},triggerRemoveLogic:function(e,t){jQuery("#frm_logic_".concat(e,"_").concat(t," .frm_remove_tag")).trigger("click")},downloadXML:function(e,t,r){var n="".concat(ajaxurl,"?action=frm_").concat(e,"_xml&ids=").concat(t);null!==r&&(n="".concat(n,"&is_template=").concat(r)),location.href=n},hooks:{applyFilters:function(e){for(var t,r=arguments.length,n=new Array(r>1?r-1:0),o=1;o1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(r){var n=k,o=0;"summary"===e&&(o=b.children('li[data-type="break"]').length>0?1:0),jQuery.ajax({type:"POST",url:ajaxurl,data:Object.assign(pe(e,0,n,o),{field_options:t}),success:function(t){r(t),setTimeout(function(){En(),$e(t,!0);var r=ve(t);r&&wp.hooks.doAction("frm_after_field_added_in_form_builder",{field:t,fieldId:r,fieldType:e,form_id:n})},10)},error:be})})},confirmLinkClick:D,handleInsertFieldByDraggingResponse:ye,handleAddFieldClickResponse:Ie,syncLayoutClasses:le,moveFieldSettings:io,maybeCollapseSettings:Rr}},window.frmAdminBuild=frmAdminBuildJS(),jQuery(document).ready(function(){var e;frmAdminBuild.init(),document.querySelectorAll(".frm-dropdown-menu").forEach(function(e){e.classList.add("dropdown-menu");var t,r,n=e.querySelector(".frm-dropdown-toggle");n&&(n.hasAttribute("role")||n.setAttribute("role","button"),n.hasAttribute("tabindex")||n.setAttribute("tabindex",0)),"UL"===e.tagName&&(r=(r=(r=(r=(r=(r=(t=e).outerHTML).replace("","")).replaceAll("",'')).replaceAll('
"," "),t.outerHTML=r)}),null===(e=document.querySelector(".preview.dropdown .frm-dropdown-toggle"))||void 0===e||e.setAttribute("data-bs-toggle","dropdown"),document.querySelectorAll("[data-toggle]").forEach(function(e){return e.setAttribute("data-bs-toggle",e.getAttribute("data-toggle"))})}),window.frm_show_div=function(e,t,r,n){t==r?jQuery(n+e).fadeIn("slow").css("visibility","visible"):jQuery(n+e).fadeOut("slow")},window.frmCheckAll=function(e,t){jQuery('input[name^="'.concat(t,'"]')).prop("checked",Boolean(e))},window.frmCheckAllLevel=function(e,t,r){jQuery(".frm_catlevel_".concat(r)).children(".frm_checkbox").children("label").children('input[name^="'.concat(t,'"]')).prop("checked",Boolean(e))},window.frmGetFieldValues=function(e,t,r,n,o,i){e&&jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_get_field_values¤t_field=".concat(t,"&field_id=").concat(e,"&name=").concat(o,"&t=").concat(n,"&form_action=").concat(jQuery('input[name="frm_action"]').val(),"&nonce=").concat(frmGlobal.nonce),success:function(e){document.getElementById("frm_show_selected_values_".concat(t,"_").concat(r)).innerHTML=e,"function"==typeof i&&i()}})},window.frmImportCsv=function(e){var t="";"undefined"!=typeof __FRMURLVARS&&(t=__FRMURLVARS),jQuery.ajax({type:"POST",url:ajaxurl,data:"action=frm_import_csv&nonce=".concat(frmGlobal.nonce,"&frm_skip_cookie=1").concat(t),success:function(t){var r=jQuery(".frm_admin_progress_bar").attr("aria-valuemax"),n=r-t,o=n/r*100;jQuery(".frm_admin_progress_bar").css("width","".concat(o,"%")).attr("aria-valuenow",n),parseInt(t,10)>0?(jQuery(".frm_csv_remaining").html(t),frmImportCsv(e)):(jQuery(document.getElementById("frm_import_message")).html(frm_admin_js.import_complete),setTimeout(function(){location.href="?page=formidable-entries&frm_action=list&form=".concat(e,"&import-message=1")},2e3))}})}})();
\ No newline at end of file
diff --git a/js/src/admin/admin.js b/js/src/admin/admin.js
index 5aeb30eceb..da97cd734f 100644
--- a/js/src/admin/admin.js
+++ b/js/src/admin/admin.js
@@ -779,6 +779,7 @@ window.frmAdminBuildJS = function() {
function afterActionRemoved( type ) {
checkActiveAction( type );
+ maybeEnableOtherPaymentActions( type );
if ( ! document.querySelector( '.frm_form_action_settings' ) ) {
document.querySelector( '.frm-no-actions-message' )?.classList.remove( 'frm_hidden' );
@@ -789,6 +790,21 @@ window.frmAdminBuildJS = function() {
wp.hooks.doAction( hookName, hookArgs );
}
+ /**
+ * @since x.x
+ *
+ * @param {string} deletedType
+ *
+ * @return {void}
+ */
+ function maybeEnableOtherPaymentActions( deletedType ) {
+ if ( 'payment' !== deletedType ) {
+ return;
+ }
+
+ [ 'stripe', 'square', 'paypal' ].forEach( action => checkActiveAction( action ) );
+ }
+
function clickWidget( event, b ) {
/*jshint validthis:true */
if ( b === undefined ) {
@@ -7726,6 +7742,8 @@ window.frmAdminBuildJS = function() {
// Check if icon should be active
checkActiveAction( type );
+ maybeDisableOtherPaymentActions( type );
+
showInputIcon( `#frm_form_action_${ actionId }` );
initiateMultiselect();
@@ -7746,6 +7764,30 @@ window.frmAdminBuildJS = function() {
}
}
+ /**
+ * @since x.x
+ *
+ * @param {string} excludedType
+ *
+ * @return {void}
+ */
+ function maybeDisableOtherPaymentActions( excludedType ) {
+ const paymentActions = [ 'stripe', 'square', 'paypal' ];
+
+ if ( ! paymentActions.includes( excludedType ) ) {
+ // Not a payment action so exit early.
+ return;
+ }
+
+ paymentActions.forEach(
+ action => {
+ if ( action !== excludedType ) {
+ checkActiveAction( action );
+ }
+ }
+ );
+ }
+
function closeOpenActions() {
document.querySelectorAll( '.frm_form_action_settings.open' ).forEach(
setting => setting.classList.remove( 'open' )
@@ -8029,7 +8071,15 @@ window.frmAdminBuildJS = function() {
return parseInt( jQuery( `.frm_${ type }_action` ).data( 'limit' ), 10 );
}
+ /**
+ * @param {string} type
+ *
+ * @return {number} The number of actions for the specified type.
+ */
function getNumberOfActionsForType( type ) {
+ if ( [ 'paypal', 'stripe', 'square' ].includes( type ) ) {
+ type = 'payment';
+ }
return jQuery( `.frm_single_${ type }_settings` ).length;
}
diff --git a/paypal/controllers/FrmPayPalLiteActionsController.php b/paypal/controllers/FrmPayPalLiteActionsController.php
new file mode 100644
index 0000000000..0101ec6f35
--- /dev/null
+++ b/paypal/controllers/FrmPayPalLiteActionsController.php
@@ -0,0 +1,2636 @@
+form_id : $field['form_id'];
+ $actions = self::get_actions_before_submit( $form_id );
+
+ if ( ! $actions ) {
+ return $callback;
+ }
+
+ $field_id = is_object( $field ) ? $field->id : $field['id'];
+
+ foreach ( $actions as $action ) {
+ if ( (int) $action->post_content['credit_card'] === (int) $field_id ) {
+ return self::class . '::show_card';
+ }
+ }
+
+ return $callback;
+ }
+
+ /**
+ * Override the credit card field HTML if there is a PayPal action.
+ *
+ * @since x.x
+ *
+ * @param array $field
+ * @param string $field_name
+ * @param array $atts
+ *
+ * @return void
+ */
+ public static function show_card( $field, $field_name, $atts ) {
+ $actions = self::get_actions_before_submit( $field['form_id'] );
+
+ if ( $actions ) {
+ self::load_scripts( (int) $field['form_id'] );
+
+ $html_id = $atts['html_id'];
+ include FrmStrpLiteAppHelper::plugin_path() . '/views/payments/card-field.php';
+ return;
+ }
+
+ // Use the Pro function when there are no Stripe actions.
+ // This is required for other gateways like Authorize.Net.
+ if ( is_callable( 'FrmProCreditCardsController::show_in_form' ) ) {
+ FrmProCreditCardsController::show_in_form( $field, $field_name, $atts );
+ }
+ }
+
+ /**
+ * Get all published payment actions with the PayPal gateway that have an amount set.
+ *
+ * @since x.x
+ *
+ * @param int|string $form_id
+ *
+ * @return array
+ */
+ public static function get_actions_before_submit( $form_id ) {
+ $payment_actions = self::get_actions_for_form( $form_id );
+
+ foreach ( $payment_actions as $k => $payment_action ) {
+ $gateway = $payment_action->post_content['gateway'];
+ $is_paypal = $gateway === 'paypal' || ( is_array( $gateway ) && in_array( 'paypal', $gateway, true ) );
+
+ if ( ! $is_paypal || empty( $payment_action->post_content['amount'] ) ) {
+ unset( $payment_actions[ $k ] );
+ }
+ }
+
+ return $payment_actions;
+ }
+
+ /**
+ * Trigger a PayPal payment after a form is submitted.
+ * This is called for both one time and recurring payments.
+ *
+ * @param WP_Post $action
+ * @param stdClass $entry
+ * @param mixed $form
+ *
+ * @return array
+ */
+ public static function trigger_gateway( $action, $entry, $form ) {
+ $response = array(
+ 'success' => false,
+ 'run_triggers' => false,
+ 'show_errors' => true,
+ );
+ $atts = compact( 'action', 'entry', 'form' );
+ $amount = self::prepare_amount( $action->post_content['amount'], $atts );
+
+ // phpcs:ignore Universal.Operators.StrictComparisons
+ if ( ! $amount || $amount == 000 ) {
+ $response['error'] = __( 'Please specify an amount for the payment', 'formidable' );
+ return $response;
+ }
+
+ if ( ! self::paypal_is_configured() ) {
+ $response['error'] = __( 'PayPal still needs to be configured.', 'formidable' );
+ return $response;
+ }
+
+ $payment_args = compact( 'form', 'entry', 'action', 'amount' );
+
+ // Attempt to charge the customer's card.
+ if ( 'recurring' === $action->post_content['type'] ) {
+ $charge = self::trigger_recurring_payment( $payment_args );
+ } else {
+ $charge = self::trigger_one_time_payment( $payment_args );
+ }
+
+ if ( $charge === true ) {
+ $response['success'] = true;
+ } else {
+ $response['error'] = $charge;
+ }
+
+ if ( ! self::$active_order_id ) {
+ return $response;
+ }
+
+ $paypal_message = '';
+ $email = false;
+ $address = false;
+ $order = FrmPayPalLiteConnectHelper::get_order( self::$active_order_id );
+
+ if ( is_object( $order ) && isset( $order->payer ) && is_object( $order->payer ) ) {
+ $payer = $order->payer;
+
+ if ( ! empty( $payer->email_address ) ) {
+ $email = $payer->email_address;
+ }
+ }
+
+ if ( is_object( $order ) && ! empty( $order->purchase_units[0]->shipping->address ) && is_object( $order->purchase_units[0]->shipping->address ) ) {
+ $address = $order->purchase_units[0]->shipping->address;
+ }
+
+ $paypal_message = '';
+
+ if ( self::$pending_capture ) {
+ $paypal_message .= '' . esc_html__( 'Payment status: ', 'formidable' ) . ' ' . esc_html__( 'Pending', 'formidable' ) . ' ';
+ }
+
+ $source_type = self::$active_payment_source;
+
+ if ( $source_type ) {
+ $display_type = self::get_source_display_type( $source_type );
+ $paypal_message .= '' . esc_html__( 'Payment source: ', 'formidable' ) . ' ' . $display_type . ' ';
+ }
+
+ if ( $email ) {
+ $paypal_message .= '' . esc_html__( 'Payment made by: ', 'formidable' ) . ' ' . $email . ' ';
+ }
+
+ if ( $address && ! empty( $address->address_line_1 ) ) {
+ $paypal_message .= self::format_address( $address );
+ }
+
+ /**
+ * Filters the message to show in the main feedback area.
+ *
+ * @since x.x
+ *
+ * @param string $paypal_message The message to show.
+ * @param stdClass $order The order object.
+ */
+ $paypal_message = apply_filters( 'frm_paypal_message', $paypal_message, $order );
+
+ add_filter(
+ 'frm_main_feedback',
+ function ( $message ) use ( $paypal_message ) {
+ if ( $paypal_message ) {
+ $details = '' . $paypal_message . '
';
+ $message = preg_replace( '/(]*\bfrm_message\b[^>]*>)(.*?)(<\/div>)/s', '$1$2' . $details . '$3', $message );
+ }
+
+ return $message;
+ }
+ );
+
+ return $response;
+ }
+
+ /**
+ * Get the display label for a payment source type.
+ *
+ * @since x.x
+ *
+ * @param string $source_type The payment source identifier (e.g. 'paypal', 'paylater', 'google_pay').
+ *
+ * @return string The human-readable display label.
+ */
+ private static function get_source_display_type( $source_type ) {
+ switch ( $source_type ) {
+ case 'paypal':
+ return __( 'PayPal', 'formidable' );
+ case 'paylater':
+ return __( 'Pay Later', 'formidable' );
+ default:
+ return ucwords( str_replace( '_', ' ', $source_type ) );
+ }
+ }
+
+ /**
+ * Format a PayPal shipping address object into an HTML string.
+ *
+ * @since x.x
+ *
+ * @param object $address The PayPal shipping address object.
+ *
+ * @return string The formatted address HTML.
+ */
+ private static function format_address( $address ) {
+ $formatted = '
' . esc_html__( 'Address: ', 'formidable' ) . ' ' . '
';
+
+ $formatted .= $address->address_line_1 . '
';
+
+ // City, State Zip
+ $city_line = '';
+
+ if ( ! empty( $address->admin_area_2 ) ) {
+ $city_line .= $address->admin_area_2;
+ }
+
+ if ( ! empty( $address->admin_area_1 ) ) {
+ $city_line .= $city_line ? ', ' . $address->admin_area_1 : $address->admin_area_1;
+ }
+
+ if ( ! empty( $address->postal_code ) ) {
+ $city_line .= $city_line ? ' ' . $address->postal_code : $address->postal_code;
+ }
+
+ if ( $city_line ) {
+ $formatted .= $city_line . '
';
+ }
+
+ if ( ! empty( $address->country_code ) ) {
+ $formatted .= $address->country_code . '
';
+ }
+
+ return $formatted;
+ }
+
+ /**
+ * Trigger a one time payment.
+ *
+ * @param array $atts The arguments for the payment.
+ *
+ * @return string|true string on error, true on success.
+ */
+ private static function trigger_one_time_payment( $atts ) {
+ $paypal_order_id = FrmAppHelper::get_post_param( 'paypal_order_id', '', 'sanitize_text_field' );
+
+ if ( ! $paypal_order_id ) {
+ return 'No PayPal order ID found.';
+ }
+
+ $order = FrmPayPalLiteConnectHelper::get_order( $paypal_order_id );
+
+ if ( false === $order ) {
+ return 'Failed to get order.';
+ }
+
+ if ( self::is_liability_error( $order ) ) {
+ return 'This payment was flagged as possible fraud and has been rejected.';
+ }
+
+ if ( ! self::validate_order_status( $order ) ) {
+ return 'This order status is not valid for capture.';
+ }
+
+ if ( ! self::validate_order_amount( $order, $atts['amount'] ) ) {
+ return 'This order amount appears to be tampered with.';
+ }
+
+ $response = FrmPayPalLiteConnectHelper::capture_order( $paypal_order_id );
+
+ if ( false === $response ) {
+ // Get error message and debug_id from static properties
+ $reason = FrmPayPalLiteConnectHelper::get_latest_error_from_paypal_api();
+ $debug_id = FrmPayPalLiteConnectHelper::get_latest_debug_id_from_paypal_api();
+ if ( $reason ) {
+ $message = $reason;
+ if ( $debug_id ) {
+ $message .= ' {{debug_id:' . $debug_id . '}}';
+ }
+ return $message;
+ }
+ return 'Failed to confirm order.';
+ }
+
+ // If PayPal returned an error (e.g. ORDER_IS_PENDING_APPROVAL),
+ // create a pending payment instead of failing outright.
+ if ( ! empty( $response->capture_error ) ) {
+ return self::handle_pending_capture( $response, $atts, $paypal_order_id );
+ }
+
+ if ( ! isset( $response->status ) || $response->status !== 'COMPLETED' ) {
+ return self::get_paypal_error_message( $response, __( 'Failed to capture order.', 'formidable' ) );
+ }
+
+ $capture_id = self::get_capture_id_from_response( $response );
+
+ self::sync_entry_data_with_capture_response( $response, $atts );
+
+ // Create a payment record.
+ $atts['status'] = 'complete';
+ $atts['charge'] = new stdClass();
+ $atts['charge']->id = $capture_id ? $capture_id : $paypal_order_id;
+ $atts['charge']->amount = $atts['amount'];
+
+ $payment_id = self::create_new_payment( $atts );
+ $frm_payment = new FrmTransLitePayment();
+ $payment = $frm_payment->get_one( $payment_id );
+ $status = $atts['status'];
+
+ FrmTransLiteActionsController::trigger_payment_status_change( compact( 'status', 'payment' ) );
+
+ self::$active_order_id = $paypal_order_id;
+ self::$active_payment_source = FrmAppHelper::get_post_param( 'paypal_payment_source', '', 'sanitize_text_field' );
+
+ return true;
+ }
+
+ /**
+ * Extract a human-readable message from a PayPal error response.
+ *
+ * PayPal error payloads include a `details` array with per-issue
+ * `description` strings (e.g. "The instrument presented was either declined
+ * by the processor or bank..."). Prefer those over the generic top-level
+ * `message` so the buyer sees the actionable reason.
+ *
+ * @since x.x
+ *
+ * @param mixed $response The PayPal response object.
+ * @param string $fallback The fallback message when no details are available.
+ *
+ * @return string
+ */
+ private static function get_paypal_error_message( $response, $fallback ) {
+ $message = $fallback;
+
+ if ( is_object( $response ) && isset( $response->details ) && is_array( $response->details ) ) {
+ foreach ( $response->details as $detail ) {
+ if ( is_object( $detail ) && ! empty( $detail->description ) ) {
+ $message = (string) $detail->description;
+ break;
+ }
+ }
+ } elseif ( is_object( $response ) && ! empty( $response->message ) ) {
+ $message = (string) $response->message;
+ }
+
+ return self::maybe_append_debug_id( $message, $response );
+ }
+
+ /**
+ * Conditionally append a PayPal debug ID to an error message.
+ *
+ * The debug ID is shown only to users who can edit forms, as a
+ * troubleshooting aid.
+ *
+ * @since x.x
+ *
+ * @param string $message The error message.
+ * @param mixed $response The PayPal response that may contain a debug_id property.
+ * @return string
+ */
+ private static function maybe_append_debug_id( $message, $response ) {
+ if ( ! current_user_can( 'frm_edit_forms' ) ) {
+ return $message;
+ }
+
+ $debug_id = is_object( $response ) && ! empty( $response->debug_id ) ? $response->debug_id : '';
+ if ( ! $debug_id ) {
+ return $message;
+ }
+
+ return $message . '
Debug ID: ' . esc_html( $debug_id );
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param stdClass $order The order object.
+ *
+ * @return bool
+ */
+ private static function is_liability_error( $order ) {
+ if ( ! isset( $order->payment_source->card->authentication_result->liability_shift ) ) {
+ return false;
+ }
+
+ $liability_shift = $order->payment_source->card->authentication_result->liability_shift;
+ $is_liability_error = 'NO' === $liability_shift || 'UNKNOWN' === $liability_shift;
+
+ /**
+ * Filters whether the liability shift is an error.
+ *
+ * @since x.x
+ *
+ * @param bool $is_liability_error Whether the liability shift is an error.
+ * @param string $liability_shift The liability shift value. By default 'NO' and 'UNKNOWN' are errors.
+ * @param stdClass $order The order object.
+ */
+ return (bool) apply_filters(
+ 'frm_paypal_is_liability_error',
+ $is_liability_error,
+ $liability_shift,
+ $order
+ );
+ }
+
+ /**
+ * Handle a capture that returned a PayPal error instead of completing.
+ *
+ * For recoverable states like ORDER_IS_PENDING_APPROVAL, a pending
+ * payment record is created so the webhook can complete it later.
+ * For unrecoverable errors, the PayPal error description is returned.
+ *
+ * @since x.x
+ *
+ * @param stdClass $response The PayPal error response object.
+ * @param array $atts The payment attributes.
+ * @param string $paypal_order_id The PayPal order ID.
+ *
+ * @return string|true String error message or true on success.
+ */
+ private static function handle_pending_capture( $response, $atts, $paypal_order_id ) {
+ self::$pending_capture = true;
+
+ $issue = self::get_capture_error_issue( $response );
+
+ // Only block on known non-recoverable errors. For pending states
+ // or unknown issues (empty details from PayPal), create a pending
+ // payment and let the webhook resolve it.
+ // Include mock error codes for testing.
+ $non_recoverable = array(
+ 'INSTRUMENT_DECLINED',
+ 'PAYER_CANNOT_PAY',
+ 'MAX_NUMBER_OF_PAYMENT_ATTEMPTS_EXCEEDED',
+ 'AUTHENTICATION_FAILURE',
+ 'INTERNAL_SERVER_ERROR',
+ 'INVALID_REQUEST',
+ 'REFUND_FAILED_INSUFFICIENT_FUNDS',
+ 'REFUND_FAILED_CREDIT_CARD_REFUND',
+ 'REFUND_FAILED_REFUND_NOT_ALLOWED',
+ 'REFUND_FAILED_TRANSACTION_ALREADY_REFUNDED',
+ 'REFUND_FAILED_INVALID_ARGUMENT',
+ );
+ if ( in_array( $issue, $non_recoverable, true ) ) {
+ // Convert issue code to human-readable message
+ $error_message = self::convert_issue_to_message( $issue );
+ return self::get_paypal_error_message( $response, $error_message );
+ }
+
+ $atts['status'] = 'pending';
+ $atts['charge'] = new stdClass();
+ $atts['charge']->id = $paypal_order_id;
+ $atts['charge']->amount = $atts['amount'];
+
+ $payment_id = self::create_new_payment( $atts );
+ $frm_payment = new FrmTransLitePayment();
+ $payment = $frm_payment->get_one( $payment_id );
+ $status = $atts['status'];
+
+ FrmTransLiteActionsController::trigger_payment_status_change( compact( 'status', 'payment' ) );
+
+ self::$active_order_id = $paypal_order_id;
+ self::$active_payment_source = FrmAppHelper::get_post_param( 'paypal_payment_source', '', 'sanitize_text_field' );
+
+ return true;
+ }
+
+ /**
+ * Extract the issue code from a PayPal capture error response.
+ *
+ * @since x.x
+ *
+ * @param stdClass $response The PayPal error response.
+ *
+ * @return string The issue code, or empty string if not found.
+ */
+ private static function get_capture_error_issue( $response ) {
+ // Check for details array first (standard PayPal error format)
+ if ( isset( $response->details ) && is_array( $response->details ) ) {
+ $first_detail = reset( $response->details );
+ if ( is_object( $first_detail ) && ! empty( $first_detail->issue ) ) {
+ return (string) $first_detail->issue;
+ }
+ }
+
+ // Check for name field (used by mock responses and some error formats)
+ if ( isset( $response->name ) && is_string( $response->name ) ) {
+ return $response->name;
+ }
+
+ return '';
+ }
+
+ /**
+ * Convert a PayPal issue code to a human-readable error message.
+ *
+ * @since x.x
+ *
+ * @param string $issue The issue code (e.g. AUTHENTICATION_FAILURE).
+ * @return string The human-readable error message.
+ */
+ private static function convert_issue_to_message( $issue ) {
+ // Map of common PayPal issue codes to human-readable messages
+ $issue_map = array(
+ 'AUTHENTICATION_FAILURE' => 'PayPal payment failed: Authentication failure',
+ 'INSTRUMENT_DECLINED' => 'PayPal payment failed: Payment instrument declined',
+ 'PAYER_CANNOT_PAY' => 'PayPal payment failed: Payer cannot pay',
+ 'MAX_NUMBER_OF_PAYMENT_ATTEMPTS_EXCEEDED' => 'PayPal payment failed: Maximum payment attempts exceeded',
+ );
+
+ // Check if the issue is in our map
+ $upper_issue = strtoupper( $issue );
+ if ( isset( $issue_map[ $upper_issue ] ) ) {
+ return $issue_map[ $upper_issue ];
+ }
+
+ // Fallback: convert underscores to spaces and title case
+ return 'PayPal payment failed: ' . ucwords( strtolower( str_replace( '_', ' ', $issue ) ) );
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param stdClass $order
+ *
+ * @return bool
+ */
+ private static function validate_order_status( $order ) {
+ return isset( $order->status ) && 'APPROVED' === $order->status;
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param stdClass $order
+ * @param string $expected_amount This is as a whole number (in cents for currencies that include decimals).
+ *
+ * @return bool
+ */
+ private static function validate_order_amount( $order, $expected_amount ) {
+ $order_amount = $order->purchase_units[0]->amount->value ?? '';
+
+ // The order amount is in dollars, but the expected amount is in cents, so we need to convert.
+ $order_amount = str_replace( '.', '', $order_amount );
+
+ return $order_amount === $expected_amount;
+ }
+
+ /**
+ * Validate that the subscription status indicates it was approved by the payer.
+ *
+ * @since x.x
+ *
+ * @param stdClass $subscription The PayPal subscription object.
+ *
+ * @return bool
+ */
+ private static function validate_subscription_status( $subscription ) {
+ if ( ! isset( $subscription->status ) ) {
+ return false;
+ }
+
+ return in_array( $subscription->status, array( 'ACTIVE', 'APPROVED', 'APPROVAL_PENDING' ), true );
+ }
+
+ /**
+ * Validate that the subscription amount matches the expected amount.
+ *
+ * @since x.x
+ *
+ * @param stdClass $subscription The PayPal subscription object.
+ * @param string $expected_amount The expected amount as a whole number (in cents for currencies that include decimals).
+ *
+ * @return bool
+ */
+ private static function validate_subscription_amount( $subscription, $expected_amount ) {
+ // Vault-created subscriptions in APPROVAL_PENDING have no billing details yet.
+ if ( isset( $subscription->status ) && 'APPROVAL_PENDING' === $subscription->status ) {
+ return true;
+ }
+
+ $subscription_amount = $subscription->billing_info->last_payment->amount->value ?? $subscription->plan->billing_cycles[0]->pricing_scheme->fixed_price->value ?? '';
+
+ if ( ! $subscription_amount ) {
+ return false;
+ }
+
+ $subscription_amount = number_format( (float) $subscription_amount, 2, '.', '' );
+ $expected_amount = number_format( ( (float) $expected_amount ) / 100, 2, '.', '' );
+
+ return $subscription_amount === $expected_amount;
+ }
+
+ /**
+ * @param object $response
+ *
+ * @return string
+ */
+ private static function get_capture_id_from_response( $response ) {
+ if ( ! isset( $response->id ) ) {
+ return '';
+ }
+
+ foreach ( $response->purchase_units as $purchase_unit ) {
+ if ( empty( $purchase_unit->payments ) || ! is_object( $purchase_unit->payments ) ) {
+ continue;
+ }
+
+ $payments = $purchase_unit->payments;
+
+ if ( empty( $payments->captures ) || ! is_array( $payments->captures ) ) {
+ continue;
+ }
+
+ $captures = $payments->captures;
+
+ foreach ( $captures as $capture ) {
+ return $capture->id;
+ }
+ }
+
+ return '';
+ }
+
+ /**
+ * Sync the entry data with the capture response.
+ *
+ * @since x.x
+ *
+ * @param object $response The response object.
+ * @param array $atts The arguments for the payment.
+ *
+ * @return void
+ */
+ private static function sync_entry_data_with_capture_response( $response, $atts ) {
+ if ( ! isset( $response->payer ) || ! is_object( $response->payer ) ) {
+ return;
+ }
+
+ $entry = $atts['entry'];
+ $action = $atts['action'];
+ $settings = $action->post_content;
+ $mode = $settings['entry_data_sync'] ?? 'overwrite';
+ $payer = $response->payer;
+
+ if ( 'new_fields' === $mode ) {
+ $updates = self::get_order_data_field_updates( $payer, $response, $settings );
+ } else {
+ $updates = self::get_payer_field_updates( $payer, $response, $action, $entry );
+ }
+
+ foreach ( $updates as $field_id => $new_value ) {
+ if ( ! FrmEntryMeta::update_entry_meta( $entry->id, $field_id, '', $new_value ) ) {
+ FrmEntryMeta::add_entry_meta( $entry->id, $field_id, '', $new_value );
+ }
+ }
+
+ if ( ! class_exists( 'FrmLog' ) ) {
+ return;
+ }
+
+ $log = new FrmLog();
+ $log->add(
+ array(
+ 'title' => 'PayPal Lite: Sync Entry Data with Capture Response',
+ 'content' => print_r( $updates, true ),
+ )
+ );
+ }
+
+ /**
+ * Sync the entry data with the subscription response.
+ *
+ * Normalizes the subscriber data from the subscription response into the
+ * same shape used by the capture response so the existing field-update
+ * helpers can be reused.
+ *
+ * @since x.x
+ *
+ * @param object $subscription The subscription object from PayPal.
+ * @param array $atts Includes 'entry', 'action', 'amount'.
+ *
+ * @return void
+ */
+ private static function sync_entry_data_with_subscription_response( $subscription, $atts ) {
+ if ( ! isset( $subscription->subscriber ) || ! is_object( $subscription->subscriber ) ) {
+ return;
+ }
+
+ $subscriber = $subscription->subscriber;
+
+ // Normalize subscriber into the payer shape expected by existing helpers.
+ $payer = (object) array(
+ 'email_address' => $subscriber->email_address ?? '',
+ 'name' => $subscriber->name ?? null,
+ );
+
+ // Normalize shipping address into the purchase_units shape expected by get_shipping_address_from_response.
+ $response = (object) array(
+ 'payer' => $payer,
+ 'purchase_units' => array(),
+ );
+
+ if ( isset( $subscriber->shipping_address->address ) ) {
+ $response->purchase_units = array(
+ (object) array(
+ 'shipping' => (object) array(
+ 'address' => $subscriber->shipping_address->address,
+ ),
+ ),
+ );
+ }
+
+ $entry = $atts['entry'];
+ $action = $atts['action'];
+ $settings = $action->post_content;
+ $mode = $settings['entry_data_sync'] ?? 'overwrite';
+
+ if ( 'new_fields' === $mode ) {
+ $updates = self::get_order_data_field_updates( $payer, $response, $settings );
+
+ foreach ( $updates as $field_id => $new_value ) {
+ FrmEntryMeta::add_entry_meta( $entry->id, $field_id, '', $new_value );
+ }
+ } else {
+ $updates = self::get_payer_field_updates( $payer, $response, $action, $entry );
+
+ foreach ( $updates as $field_id => $new_value ) {
+ if ( ! FrmEntryMeta::update_entry_meta( $entry->id, $field_id, '', $new_value ) ) {
+ FrmEntryMeta::add_entry_meta( $entry->id, $field_id, '', $new_value );
+ }
+ }
+ }
+
+ if ( ! class_exists( 'FrmLog' ) ) {
+ return;
+ }
+
+ $log = new FrmLog();
+ $log->add(
+ array(
+ 'title' => 'PayPal Lite: Sync Entry Data with Subscription Response',
+ 'content' => print_r( $updates, true ),
+ )
+ );
+ }
+
+ /**
+ * Build field updates for the dedicated PayPal order data fields.
+ *
+ * @since x.x
+ *
+ * @param stdClass $payer The payer object from the PayPal response.
+ * @param stdClass $response The full capture response.
+ * @param array $settings The action settings.
+ *
+ * @return array
Field ID => value pairs.
+ */
+ private static function get_order_data_field_updates( $payer, $response, $settings ) {
+ $updates = array();
+
+ // Email (hidden field, single string value).
+ if ( ! empty( $settings['paypal_order_email'] ) && ! empty( $payer->email_address ) ) {
+ $updates[ (int) $settings['paypal_order_email'] ] = $payer->email_address;
+ }
+
+ // Name (name field with first/last sub-keys).
+ if ( ! empty( $settings['paypal_order_name'] ) && isset( $payer->name ) ) {
+ $new_value = array(
+ 'first' => ! empty( $payer->name->given_name ) ? $payer->name->given_name : '',
+ 'last' => ! empty( $payer->name->surname ) ? $payer->name->surname : '',
+ );
+
+ if ( array_filter( $new_value ) ) {
+ $updates[ (int) $settings['paypal_order_name'] ] = $new_value;
+ }
+ }
+
+ // Address (address field with line1/line2/city/state/zip/country sub-keys).
+ if ( empty( $settings['paypal_order_address'] ) ) {
+ return $updates;
+ }
+
+ $shipping = self::get_shipping_address_from_response( $response );
+
+ if ( $shipping ) {
+ $new_value = array(
+ 'line1' => ! empty( $shipping->address_line_1 ) ? $shipping->address_line_1 : '',
+ 'line2' => ! empty( $shipping->address_line_2 ) ? $shipping->address_line_2 : '',
+ 'city' => ! empty( $shipping->admin_area_2 ) ? $shipping->admin_area_2 : '',
+ 'state' => ! empty( $shipping->admin_area_1 ) ? $shipping->admin_area_1 : '',
+ 'zip' => ! empty( $shipping->postal_code ) ? $shipping->postal_code : '',
+ 'country' => ! empty( $shipping->country_code ) ? $shipping->country_code : '',
+ );
+
+ if ( array_filter( $new_value ) ) {
+ $updates[ (int) $settings['paypal_order_address'] ] = $new_value;
+ }
+ }
+
+ return $updates;
+ }
+
+ /**
+ * Build an array of field updates by comparing payer response data against current entry metas.
+ *
+ * @since x.x
+ *
+ * @param stdClass $payer The payer object from the PayPal response.
+ * @param stdClass $response The full capture response.
+ * @param WP_Post $action The payment action.
+ * @param stdClass $entry The entry object.
+ *
+ * @return array Field ID => new value pairs that differ from the current entry data.
+ */
+ private static function get_payer_field_updates( $payer, $response, $action, $entry ) {
+ $updates = array();
+ $settings = $action->post_content;
+
+ // Email: setting is a shortcode like [25], extract the field ID.
+ if ( ! empty( $settings['email'] ) && preg_match( '/\[(\d+)\]/', $settings['email'], $matches ) ) {
+ $email_field_id = (int) $matches[1];
+
+ if ( ! empty( $payer->email_address ) ) {
+ $current = $entry->metas[ $email_field_id ] ?? '';
+
+ if ( $current !== $payer->email_address ) {
+ $updates[ $email_field_id ] = $payer->email_address;
+ }
+ }
+ }
+
+ // Name fields.
+ if ( isset( $payer->name ) ) {
+ $first_name_field_id = ! empty( $settings['billing_first_name'] ) ? (int) $settings['billing_first_name'] : 0;
+ $last_name_field_id = ! empty( $settings['billing_last_name'] ) ? (int) $settings['billing_last_name'] : 0;
+
+ if ( $first_name_field_id && $first_name_field_id === $last_name_field_id ) {
+ // Both settings point to the same Name field. Store as a serialized array.
+ $new_value = array(
+ 'first' => ! empty( $payer->name->given_name ) ? $payer->name->given_name : '',
+ 'last' => ! empty( $payer->name->surname ) ? $payer->name->surname : '',
+ );
+ $current = $entry->metas[ $first_name_field_id ] ?? array();
+
+ if ( $current !== $new_value ) {
+ $updates[ $first_name_field_id ] = $new_value;
+ }
+ } else {
+ // Separate text fields for first and last name.
+ if ( $first_name_field_id && ! empty( $payer->name->given_name ) ) {
+ $current = $entry->metas[ $first_name_field_id ] ?? '';
+
+ if ( $current !== $payer->name->given_name ) {
+ $updates[ $first_name_field_id ] = $payer->name->given_name;
+ }
+ }
+
+ if ( $last_name_field_id && ! empty( $payer->name->surname ) ) {
+ $current = $entry->metas[ $last_name_field_id ] ?? '';
+
+ if ( $current !== $payer->name->surname ) {
+ $updates[ $last_name_field_id ] = $payer->name->surname;
+ }
+ }
+ }//end if
+ }//end if
+
+ // Address: pull from the first purchase unit's shipping address.
+ if ( empty( $settings['billing_address'] ) ) {
+ return $updates;
+ }
+
+ $field_id = (int) $settings['billing_address'];
+ $shipping = self::get_shipping_address_from_response( $response );
+
+ if ( ! $shipping ) {
+ return $updates;
+ }
+
+ $new_value = array(
+ 'line1' => ! empty( $shipping->address_line_1 ) ? $shipping->address_line_1 : '',
+ 'line2' => ! empty( $shipping->address_line_2 ) ? $shipping->address_line_2 : '',
+ 'city' => ! empty( $shipping->admin_area_2 ) ? $shipping->admin_area_2 : '',
+ 'state' => ! empty( $shipping->admin_area_1 ) ? $shipping->admin_area_1 : '',
+ 'zip' => ! empty( $shipping->postal_code ) ? $shipping->postal_code : '',
+ 'country' => ! empty( $shipping->country_code ) ? $shipping->country_code : '',
+ );
+
+ if ( ! array_filter( $new_value ) ) {
+ return $updates;
+ }
+
+ $current = $entry->metas[ $field_id ] ?? array();
+
+ if ( $current !== $new_value ) {
+ $updates[ $field_id ] = $new_value;
+ }
+
+ return $updates;
+ }
+
+ /**
+ * Get the shipping address object from the first purchase unit in the response.
+ *
+ * @since x.x
+ *
+ * @param object $response The capture response.
+ *
+ * @return false|object The address object, or false if not available.
+ */
+ private static function get_shipping_address_from_response( $response ) {
+ if ( empty( $response->purchase_units ) || ! is_array( $response->purchase_units ) ) {
+ return false;
+ }
+
+ $purchase_unit = reset( $response->purchase_units );
+
+ if ( empty( $purchase_unit->shipping ) || ! is_object( $purchase_unit->shipping ) || empty( $purchase_unit->shipping->address ) ) {
+ return false;
+ }
+
+ return $purchase_unit->shipping->address;
+ }
+
+ /**
+ * Add a payment row for the payments table.
+ *
+ * @param array $atts The arguments for the payment.
+ *
+ * @return int
+ */
+ private static function create_new_payment( $atts ) {
+ $atts['charge'] = (object) $atts['charge'];
+
+ $new_values = array(
+ 'amount' => FrmTransLiteAppHelper::get_formatted_amount_for_currency( $atts['charge']->amount, $atts['action'] ),
+ 'status' => $atts['status'],
+ 'paysys' => 'paypal',
+ 'item_id' => $atts['entry']->id,
+ 'action_id' => $atts['action']->ID,
+ 'receipt_id' => $atts['charge']->id,
+ 'sub_id' => $atts['charge']->sub_id ?? '',
+ 'test' => 'test' === FrmPayPalLiteAppHelper::active_mode() ? 1 : 0,
+ );
+
+ $frm_payment = new FrmTransLitePayment();
+ return $frm_payment->create( $new_values );
+ }
+
+ /**
+ * Create a new PayPal subscription and a subscription and payment for the payments tables.
+ *
+ * @param array $atts Includes 'customer', 'entry', 'action', 'amount'.
+ *
+ * @return bool|string True on success, error message on failure
+ */
+ private static function trigger_recurring_payment( $atts ) {
+ $subscription_id = FrmAppHelper::get_post_param( 'paypal_subscription_id', '', 'sanitize_text_field' );
+
+ if ( ! $subscription_id ) {
+ return __( 'No PayPal subscription ID found.', 'formidable' );
+ }
+
+ $subscription = FrmPayPalLiteConnectHelper::get_subscription( $subscription_id );
+
+ if ( false === $subscription ) {
+ return 'Failed to get subscription.';
+ }
+
+ if ( ! self::validate_subscription_status( $subscription ) ) {
+ return 'This subscription status is not valid.';
+ }
+
+ if ( ! self::validate_subscription_amount( $subscription, $atts['amount'] ) ) {
+ return 'This subscription amount appears to be tampered with.';
+ }
+
+ $sub_id = self::create_new_subscription( $subscription_id, $atts, $subscription );
+
+ self::$active_payment_source = FrmAppHelper::get_post_param( 'paypal_payment_source', '', 'sanitize_text_field' );
+
+ self::$active_order_id = FrmAppHelper::get_post_param( 'paypal_order_id', '', 'sanitize_text_field' );
+
+ self::sync_entry_data_with_subscription_response( $subscription, $atts );
+
+ self::maybe_create_initial_subscription_payment( $subscription_id, $sub_id, $atts );
+
+ return true;
+ }
+
+ /**
+ * Create a new subscription record in the payments tables.
+ *
+ * @param string $subscription_id The PayPal subscription ID.
+ * @param array $atts Includes 'entry', 'action', 'amount'.
+ * @param object $subscription The PayPal subscription API response.
+ *
+ * @return int
+ */
+ private static function create_new_subscription( $subscription_id, $atts, $subscription ) {
+ $next_bill_date = gmdate( 'Y-m-d' );
+
+ if ( ! empty( $subscription->billing_info->next_billing_time ) ) {
+ $next_bill_date = gmdate( 'Y-m-d', strtotime( $subscription->billing_info->next_billing_time ) );
+ }
+
+ $new_values = array(
+ 'amount' => FrmTransLiteAppHelper::get_formatted_amount_for_currency( $atts['amount'], $atts['action'] ),
+ 'paysys' => 'paypal',
+ 'item_id' => $atts['entry']->id,
+ 'action_id' => $atts['action']->ID,
+ 'sub_id' => $subscription_id,
+ 'interval_count' => $atts['action']->post_content['interval_count'],
+ 'time_interval' => $atts['action']->post_content['interval'],
+ 'status' => 'active',
+ 'next_bill_date' => $next_bill_date,
+ 'test' => 'test' === FrmPayPalLiteAppHelper::active_mode() ? 1 : 0,
+ );
+
+ $frm_sub = new FrmTransLiteSubscription();
+ return $frm_sub->create( $new_values );
+ }
+
+ /**
+ * Create the initial payment record for a new subscription.
+ *
+ * Uses the PayPal subscription ID as a temporary receipt_id. When the PAYMENT.SALE.COMPLETED
+ * webhook arrives later, the receipt_id is updated to the real capture/sale ID.
+ *
+ * @since x.x
+ *
+ * @param string $subscription_id The PayPal subscription ID.
+ * @param int $sub_id The local subscription record ID.
+ * @param array $atts Includes 'entry', 'action', 'amount'.
+ *
+ * @return void
+ */
+ private static function maybe_create_initial_subscription_payment( $subscription_id, $sub_id, $atts ) {
+ $atts['status'] = 'complete';
+ $atts['charge'] = new stdClass();
+ $atts['charge']->id = $subscription_id;
+ $atts['charge']->amount = $atts['amount'];
+ $atts['charge']->sub_id = $sub_id;
+
+ $payment_id = self::create_new_payment( $atts );
+ $frm_payment = new FrmTransLitePayment();
+ $payment = $frm_payment->get_one( $payment_id );
+ $status = $atts['status'];
+
+ FrmTransLiteActionsController::trigger_payment_status_change( compact( 'status', 'payment' ) );
+ }
+
+ /**
+ * Check if PayPal integration is enabled.
+ *
+ * @return bool true if PayPal is set up.
+ */
+ private static function paypal_is_configured() {
+ return (bool) FrmPayPalLiteConnectHelper::get_merchant_id();
+ }
+
+ /**
+ * Convert the amount from 10.00 to 1000.
+ *
+ * @param mixed $amount
+ * @param array $atts
+ *
+ * @return string
+ */
+ public static function prepare_amount( $amount, $atts = array() ) {
+ $amount = parent::prepare_amount( $amount, $atts );
+ $currency = self::get_currency_for_action( $atts );
+ return number_format( $amount, $currency['decimals'], '', '' );
+ }
+
+ /**
+ * If this form submits with ajax, load the scripts on the first page.
+ *
+ * @param array $params
+ *
+ * @return void
+ */
+ public static function maybe_load_scripts( $params ) {
+ // phpcs:ignore Universal.Operators.StrictComparisons
+ if ( $params['form_id'] == $params['posted_form_id'] ) {
+ // This form has already been posted, so we aren't on the first page.
+ return;
+ }
+
+ $form = FrmForm::getOne( $params['form_id'] );
+
+ if ( ! $form ) {
+ return;
+ }
+
+ $credit_card_field = FrmField::getAll(
+ array(
+ 'fi.form_id' => $form->id,
+ 'type' => 'credit_card',
+ )
+ );
+
+ if ( ! $credit_card_field ) {
+ return;
+ }
+
+ $payment_actions = self::get_actions_before_submit( $form->id );
+
+ if ( ! $payment_actions ) {
+ return;
+ }
+
+ $found_gateway = false;
+
+ foreach ( $payment_actions as $action ) {
+ $gateways = $action->post_content['gateway'];
+
+ if ( in_array( 'paypal', (array) $gateways, true ) ) {
+ $found_gateway = true;
+ break;
+ }
+ }
+
+ if ( ! $found_gateway ) {
+ return;
+ }
+
+ self::load_scripts( (int) $form->id );
+ }
+
+ /**
+ * Load front end JavaScript for a PayPal form.
+ *
+ * @param int $form_id
+ *
+ * @return void
+ */
+ public static function load_scripts( $form_id ) {
+ if ( FrmAppHelper::is_admin_page( 'formidable-entries' ) ) {
+ return;
+ }
+
+ if ( wp_script_is( 'formidable-paypal', 'enqueued' ) ) {
+ return;
+ }
+
+ if ( ! $form_id || ! is_int( $form_id ) ) {
+ _doing_it_wrong( __METHOD__, '$form_id parameter must be a non-zero integer', 'x.x' );
+ return;
+ }
+
+ $payment_action_by_id = array();
+
+ add_filter(
+ 'frm_trans_settings_for_js',
+ /**
+ * @param array $settings_for_action
+ * @param WP_Post $payment_action
+ *
+ * @return array
+ */
+ function ( $settings_for_action, $payment_action ) use ( &$payment_action_by_id ) {
+ $payment_action_by_id[ $payment_action->ID ] = $payment_action;
+ $settings_for_action['layout'] = ! empty( $payment_action->post_content['layout'] ) ? $payment_action->post_content['layout'] : 'card_and_checkout';
+ return $settings_for_action;
+ },
+ 10,
+ 2
+ );
+
+ $action_settings = self::prepare_settings_for_js( $form_id );
+ $action_setting_match = false;
+
+ foreach ( $action_settings as $action ) {
+ $gateways = $action['gateways'];
+
+ if ( ! $gateways || in_array( 'paypal', (array) $gateways, true ) ) {
+ $action_setting_match = $action;
+ break;
+ }
+ }
+
+ if ( false === $action_setting_match || ! array_key_exists( $action_setting_match['id'], $payment_action_by_id ) ) {
+ return;
+ }
+
+ $action = $payment_action_by_id[ $action_setting_match['id'] ];
+
+ // Use capture for one-time payments and subscription for recurring payments.
+ $intent = $action->post_content['type'] === 'single' ? 'capture' : 'subscription';
+
+ /**
+ * Build the PayPal SDK URL with required parameters.
+ *
+ * - Subscriptions require intent=subscription.
+ * - Subscriptions also require vault=true.
+ */
+ $query_args = array(
+ 'client-id' => self::get_client_id(),
+ 'intent' => $intent,
+ 'currency' => strtoupper( $action->post_content['currency'] ?? 'USD' ),
+ 'merchant-id' => FrmPayPalLiteConnectHelper::get_merchant_id(),
+ 'enable-funding' => 'venmo,applepay',
+ );
+
+ if ( 'subscription' === $intent ) {
+ $query_args['vault'] = 'true';
+ }
+
+ $include_buttons = false;
+ $include_card_fields = false;
+ $include_messages = true;
+
+ switch ( $action->post_content['layout'] ?? 'card_and_checkout' ) {
+ case 'card_only':
+ $include_card_fields = true;
+ break;
+
+ case 'checkout_only':
+ $include_buttons = true;
+ break;
+
+ default:
+ $include_buttons = true;
+ $include_card_fields = true;
+ break;
+ }
+
+ switch ( $action->post_content['pay_later'] ?? 'auto' ) {
+ case 'off':
+ $query_args['disable-funding'] = 'paylater';
+ break;
+ case 'no-messaging':
+ // PayPal throws a TypeError: can't access property "PAGE_TYPE", trackingDetails is undefined error
+ // a lot of the time if you include messages. If you see this error, try using this 'no-messaging' option.
+ $include_messages = false;
+ break;
+ }
+
+ $components = array();
+
+ if ( $include_buttons ) {
+ $components[] = 'buttons';
+ $components[] = 'googlepay';
+ $components[] = 'applepay';
+ }
+
+ if ( $include_card_fields ) {
+ $components[] = 'card-fields';
+ }
+
+ if ( $include_messages ) {
+ $components[] = 'messages';
+ }
+
+ // Enables .isEligible checks.
+ $components[] = 'funding-eligibility';
+
+ // Required for radio button option logos.
+ $components[] = 'marks';
+
+ $query_args['components'] = implode( ',', $components );
+ $locale = self::get_paypal_locale();
+
+ if ( $locale ) {
+ $query_args['locale'] = str_replace( '-', '_', $locale );
+ }
+
+ /**
+ * Allow customization of the PayPal SDK URL query arguments.
+ *
+ * @since x.x
+ *
+ * @param array $query_args
+ * @param WP_Post $action
+ */
+ $query_args = apply_filters( 'frm_paypal_sdk_url_query_args', $query_args, $action );
+
+ $sdk_url = add_query_arg( $query_args, 'https://www.paypal.com/sdk/js' );
+
+ wp_register_script( 'paypal-sdk', $sdk_url, array(), null, false );
+ wp_register_script( 'apple-pay-sdk', 'https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js', array(), null, false );
+
+ $has_break = FrmAppHelper::pro_is_installed() && (bool) FrmField::get_all_types_in_form( $form_id, 'break' );
+
+ add_filter(
+ 'script_loader_tag',
+ /**
+ * @param string $tag
+ * @param string $handle
+ *
+ * @return string
+ */
+ function ( $tag, $handle ) use ( $has_break ) {
+ if ( 'paypal-sdk' === $handle ) {
+ $attributes = ' async data-partner-attribution-id="' . esc_attr( FrmPayPalLiteConnectHelper::get_bn_code() ) . '"';
+ return str_replace( ' src=', $attributes . ' src=', $tag );
+ }
+
+ if ( in_array( $handle, array( 'apple-pay-sdk', 'google-pay' ), true ) ) {
+ return str_replace( ' src=', ' async src=', $tag );
+ }
+
+ if ( $has_break && 'formidable-paypal' === $handle ) {
+ return str_replace( ' src=', ' async src=', $tag );
+ }
+
+ return $tag;
+ },
+ 10,
+ 2
+ );
+
+ wp_enqueue_style(
+ 'formidable-paypal',
+ FrmPayPalLiteAppHelper::plugin_url() . 'css/frontend.css',
+ array(),
+ FrmAppHelper::plugin_version()
+ );
+
+ $dependencies = array( 'paypal-sdk', 'formidable' );
+
+ if ( $include_buttons ) {
+ $dependencies[] = 'apple-pay-sdk';
+ }
+
+ $script_url = FrmPayPalLiteAppHelper::plugin_url() . 'js/frontend.js';
+
+ wp_enqueue_script(
+ 'formidable-paypal',
+ $script_url,
+ $dependencies,
+ FrmAppHelper::plugin_version(),
+ false
+ );
+
+ if ( $include_buttons ) {
+ wp_enqueue_script(
+ 'google-pay',
+ 'https://pay.google.com/gp/p/js/pay.js',
+ array(),
+ '1.0',
+ false
+ );
+ }
+
+ $paypal_vars = array(
+ 'formId' => $form_id,
+ 'nonce' => wp_create_nonce( 'frm_paypal_ajax' ),
+ 'ajax' => esc_url_raw( FrmAppHelper::get_ajax_url() ),
+ 'settings' => $action_settings,
+ 'style' => self::get_style_for_js( $form_id ),
+ 'buttonStyle' => self::get_button_style_for_js( $action ),
+ 'imagesUrl' => FrmPayPalLiteAppHelper::plugin_url() . 'images/',
+ );
+
+ wp_localize_script( 'formidable-paypal', 'frmPayPalVars', $paypal_vars );
+ }
+
+ /**
+ * @since x.x
+ *
+ * @return string
+ */
+ private static function get_paypal_locale() { // phpcs:ignore Generic.Metrics.CyclomaticComplexity.MaxExceeded, SlevomatCodingStandard.Functions.FunctionLength.FunctionLength
+ $locale = str_replace( '_', '-', get_locale() );
+ $parts = explode( '_', $locale );
+ $lang = strtolower( $parts[0] );
+ $country = isset( $parts[1] ) ? strtoupper( $parts[1] ) : '';
+
+ switch ( $lang ) {
+ case 'ar':
+ // Arabic
+ $countries = array( 'DZ', 'BH', 'EG', 'JO', 'KW', 'MA', 'OM', 'QA', 'SA', 'TN', 'AE', 'YE' );
+ break;
+
+ case 'bg':
+ // Bulgarian
+ $countries = array( 'BG' );
+ break;
+
+ case 'cs':
+ // Czech
+ $countries = array( 'CZ' );
+ break;
+
+ case 'da':
+ // Danish
+ $countries = array( 'DK', 'FO', 'GL' );
+ break;
+
+ case 'de':
+ // German
+ $countries = array( 'AT', 'DE', 'LU', 'CH' );
+ break;
+
+ case 'el':
+ // Greek
+ $countries = array( 'GR' );
+ break;
+
+ case 'en':
+ // English
+ $countries = array(
+ 'AL',
+ 'DZ',
+ 'AD',
+ 'AO',
+ 'AI',
+ 'AG',
+ 'AR',
+ 'AM',
+ 'AW',
+ 'AU',
+ 'AT',
+ 'AZ',
+ 'BS',
+ 'BH',
+ 'BB',
+ 'BY',
+ 'BE',
+ 'BZ',
+ 'BJ',
+ 'BM',
+ 'BT',
+ 'BO',
+ 'BA',
+ 'BW',
+ 'BR',
+ 'VG',
+ 'BN',
+ 'BG',
+ 'BF',
+ 'BI',
+ 'KH',
+ 'CM',
+ 'CA',
+ 'CV',
+ 'KY',
+ 'TD',
+ 'CL',
+ 'C2',
+ 'CN',
+ 'CO',
+ 'KM',
+ 'CG',
+ 'CD',
+ 'CK',
+ 'CR',
+ 'CI',
+ 'HR',
+ 'CY',
+ 'CZ',
+ 'DK',
+ 'DJ',
+ 'DM',
+ 'DO',
+ 'EC',
+ 'EG',
+ 'SV',
+ 'ER',
+ 'EE',
+ 'SZ',
+ 'ET',
+ 'FK',
+ 'FO',
+ 'FJ',
+ 'FI',
+ 'FR',
+ 'GF',
+ 'PF',
+ 'GA',
+ 'GM',
+ 'GE',
+ 'DE',
+ 'GI',
+ 'GR',
+ 'GL',
+ 'GD',
+ 'GP',
+ 'GT',
+ 'GN',
+ 'GW',
+ 'GY',
+ 'HN',
+ 'HK',
+ 'HU',
+ 'IS',
+ 'IN',
+ 'ID',
+ 'IE',
+ 'IL',
+ 'IT',
+ 'JM',
+ 'JP',
+ 'JO',
+ 'KZ',
+ 'KE',
+ 'KI',
+ 'KW',
+ 'KG',
+ 'LA',
+ 'LV',
+ 'LS',
+ 'LI',
+ 'LT',
+ 'LU',
+ 'MG',
+ 'MW',
+ 'MY',
+ 'MV',
+ 'ML',
+ 'MT',
+ 'MH',
+ 'MQ',
+ 'MR',
+ 'MU',
+ 'MX',
+ 'FM',
+ 'MD',
+ 'MC',
+ 'MN',
+ 'ME',
+ 'MS',
+ 'MA',
+ 'MZ',
+ 'NA',
+ 'NR',
+ 'NP',
+ 'NL',
+ 'AN',
+ 'NC',
+ 'NZ',
+ 'NI',
+ 'NE',
+ 'NG',
+ 'NU',
+ 'NF',
+ 'MK',
+ 'NO',
+ 'OM',
+ 'PW',
+ 'PA',
+ 'PG',
+ 'PY',
+ 'PE',
+ 'PH',
+ 'PN',
+ 'PL',
+ 'PT',
+ 'QA',
+ 'RE',
+ 'RO',
+ 'RU',
+ 'RW',
+ 'WS',
+ 'SM',
+ 'ST',
+ 'SA',
+ 'SN',
+ 'RS',
+ 'SC',
+ 'SL',
+ 'SG',
+ 'SK',
+ 'SI',
+ 'SB',
+ 'SO',
+ 'ZA',
+ 'KR',
+ 'ES',
+ 'LK',
+ 'SH',
+ 'KN',
+ 'LC',
+ 'PM',
+ 'VC',
+ 'SR',
+ 'SJ',
+ 'SE',
+ 'CH',
+ 'TW',
+ 'TJ',
+ 'TZ',
+ 'TH',
+ 'TG',
+ 'TO',
+ 'TT',
+ 'TN',
+ 'TR',
+ 'TM',
+ 'TC',
+ 'TV',
+ 'UG',
+ 'UA',
+ 'AE',
+ 'GB',
+ 'US',
+ 'UY',
+ 'VU',
+ 'VA',
+ 'VE',
+ 'VN',
+ 'WF',
+ 'YE',
+ 'ZM',
+ 'ZW',
+ );
+ break;
+
+ case 'es':
+ // Spanish
+ $countries = array(
+ 'DZ',
+ 'AD',
+ 'AO',
+ 'AI',
+ 'AG',
+ 'AR',
+ 'AM',
+ 'AW',
+ 'AZ',
+ 'BS',
+ 'BH',
+ 'BB',
+ 'BZ',
+ 'BJ',
+ 'BM',
+ 'BO',
+ 'BW',
+ 'VG',
+ 'BF',
+ 'BI',
+ 'CV',
+ 'KY',
+ 'TD',
+ 'CL',
+ 'CO',
+ 'KM',
+ 'CG',
+ 'CD',
+ 'CK',
+ 'CR',
+ 'DJ',
+ 'DM',
+ 'DO',
+ 'EC',
+ 'EG',
+ 'SV',
+ 'ER',
+ 'SZ',
+ 'ET',
+ 'FK',
+ 'FO',
+ 'FJ',
+ 'PF',
+ 'GA',
+ 'GM',
+ 'GE',
+ 'GI',
+ 'GL',
+ 'GD',
+ 'GT',
+ 'GN',
+ 'GW',
+ 'GY',
+ 'HN',
+ 'IE',
+ 'JM',
+ 'JO',
+ 'KZ',
+ 'KE',
+ 'KI',
+ 'KW',
+ 'KG',
+ 'LS',
+ 'LI',
+ 'LU',
+ 'MG',
+ 'MW',
+ 'ML',
+ 'MH',
+ 'MR',
+ 'MU',
+ 'MX',
+ 'MS',
+ 'MA',
+ 'MZ',
+ 'NA',
+ 'NR',
+ 'AN',
+ 'NC',
+ 'NZ',
+ 'NI',
+ 'NE',
+ 'NU',
+ 'NF',
+ 'OM',
+ 'PW',
+ 'PA',
+ 'PG',
+ 'PY',
+ 'PE',
+ 'PN',
+ 'QA',
+ 'RW',
+ 'SM',
+ 'ST',
+ 'SA',
+ 'SN',
+ 'RS',
+ 'SC',
+ 'SL',
+ 'SB',
+ 'SO',
+ 'ZA',
+ 'ES',
+ 'SH',
+ 'KN',
+ 'LC',
+ 'PM',
+ 'VC',
+ 'SR',
+ 'SJ',
+ 'TJ',
+ 'TZ',
+ 'TG',
+ 'TT',
+ 'TN',
+ 'TM',
+ 'TC',
+ 'TV',
+ 'UG',
+ 'UA',
+ 'AE',
+ 'US',
+ 'UY',
+ 'VU',
+ 'VA',
+ 'VE',
+ 'WF',
+ 'YE',
+ 'ZM',
+ );
+ break;
+
+ case 'et':
+ // Estonian
+ $countries = array( 'EE' );
+ break;
+
+ case 'fi':
+ // Finnish
+ $countries = array( 'FI' );
+ break;
+
+ case 'fr':
+ // French
+ $countries = array(
+ 'DZ',
+ 'AD',
+ 'AO',
+ 'AI',
+ 'AG',
+ 'AM',
+ 'AW',
+ 'AZ',
+ 'BS',
+ 'BH',
+ 'BB',
+ 'BE',
+ 'BZ',
+ 'BJ',
+ 'BM',
+ 'BO',
+ 'BW',
+ 'VG',
+ 'BF',
+ 'BI',
+ 'CM',
+ 'CA',
+ 'CV',
+ 'KY',
+ 'TD',
+ 'CL',
+ 'CO',
+ 'KM',
+ 'CG',
+ 'CD',
+ 'CK',
+ 'CR',
+ 'CI',
+ 'DJ',
+ 'DM',
+ 'DO',
+ 'EC',
+ 'EG',
+ 'SV',
+ 'ER',
+ 'SZ',
+ 'ET',
+ 'FK',
+ 'FO',
+ 'FJ',
+ 'FR',
+ 'GF',
+ 'PF',
+ 'GA',
+ 'GM',
+ 'GE',
+ 'GI',
+ 'GL',
+ 'GD',
+ 'GP',
+ 'GT',
+ 'GN',
+ 'GW',
+ 'GY',
+ 'HN',
+ 'IE',
+ 'JM',
+ 'JO',
+ 'KZ',
+ 'KE',
+ 'KI',
+ 'KW',
+ 'KG',
+ 'LS',
+ 'LI',
+ 'LU',
+ 'MG',
+ 'MW',
+ 'ML',
+ 'MH',
+ 'MQ',
+ 'MR',
+ 'MU',
+ 'YT',
+ 'MC',
+ 'MS',
+ 'MA',
+ 'MZ',
+ 'NA',
+ 'NR',
+ 'AN',
+ 'NC',
+ 'NZ',
+ 'NI',
+ 'NE',
+ 'NU',
+ 'NF',
+ 'OM',
+ 'PW',
+ 'PA',
+ 'PG',
+ 'PE',
+ 'PN',
+ 'QA',
+ 'RE',
+ 'RW',
+ 'SC',
+ 'SM',
+ 'ST',
+ 'SA',
+ 'SN',
+ 'RS',
+ 'SL',
+ 'SB',
+ 'SO',
+ 'ZA',
+ 'SH',
+ 'KN',
+ 'LC',
+ 'PM',
+ 'VC',
+ 'SR',
+ 'SJ',
+ 'CH',
+ 'TJ',
+ 'TZ',
+ 'TG',
+ 'TT',
+ 'TN',
+ 'TM',
+ 'TC',
+ 'TV',
+ 'UG',
+ 'UA',
+ 'AE',
+ 'US',
+ 'UY',
+ 'VU',
+ 'VA',
+ 'VE',
+ 'WF',
+ 'YE',
+ 'ZM',
+ );
+ break;
+
+ case 'he':
+ // Hebrew
+ $countries = array( 'IL' );
+ break;
+
+ case 'hu':
+ // Hungarian
+ $countries = array( 'HU' );
+ break;
+
+ case 'id':
+ // Indonesian
+ $countries = array( 'ID' );
+ break;
+
+ case 'it':
+ // Italian
+ $countries = array( 'IT' );
+ break;
+
+ case 'ja':
+ // Japanese
+ $countries = array( 'JP' );
+ break;
+
+ case 'ko':
+ // Korean
+ $countries = array( 'KR' );
+ break;
+
+ case 'lt':
+ // Lithuanian
+ $countries = array( 'LT' );
+ break;
+
+ case 'lv':
+ // Latvian
+ $countries = array( 'LV' );
+ break;
+
+ case 'ms':
+ // Malay
+ $countries = array( 'BN', 'MY' );
+ break;
+
+ case 'nl':
+ // Dutch
+ $countries = array( 'BE', 'NL' );
+ break;
+
+ case 'no':
+ // Norwegian
+ $countries = array( 'NO' );
+ break;
+
+ case 'pl':
+ // Polish
+ $countries = array( 'PL' );
+ break;
+
+ case 'pt':
+ // Portuguese
+ $countries = array( 'BR', 'PT' );
+ break;
+
+ case 'ro':
+ // Romanian
+ $countries = array( 'RO' );
+ break;
+
+ case 'ru':
+ // Russian
+ $countries = array( 'EE', 'LV', 'LT', 'RU', 'UA' );
+ break;
+
+ case 'si':
+ // Sinhala
+ $countries = array( 'LK' );
+ break;
+
+ case 'sk':
+ // Slovak
+ $countries = array( 'SK' );
+ break;
+
+ case 'sl':
+ // Slovenian
+ $countries = array( 'SI' );
+ break;
+
+ case 'sq':
+ // Albanian
+ $countries = array( 'AL' );
+ break;
+
+ case 'sv':
+ // Swedish
+ $countries = array( 'SE' );
+ break;
+
+ case 'th':
+ // Thai
+ $countries = array( 'TH' );
+ break;
+
+ case 'tl':
+ // Tagalog
+ $countries = array( 'PH' );
+ break;
+
+ case 'tr':
+ // Turkish
+ $countries = array( 'TR' );
+ break;
+
+ case 'vi':
+ // Vietnamese
+ $countries = array( 'VN' );
+ break;
+
+ case 'zh':
+ // Chinese
+ $countries = array(
+ 'C2',
+ 'CN',
+ 'HK',
+ 'TW',
+ 'DZ',
+ 'AD',
+ 'AO',
+ 'AI',
+ 'AG',
+ 'AM',
+ 'AW',
+ 'AZ',
+ 'BS',
+ 'BH',
+ 'BB',
+ 'BZ',
+ 'BJ',
+ 'BM',
+ 'BO',
+ 'BW',
+ 'VG',
+ 'BF',
+ 'BI',
+ 'CV',
+ 'KY',
+ 'TD',
+ 'CL',
+ 'CO',
+ 'KM',
+ 'CG',
+ 'CD',
+ 'CK',
+ 'CR',
+ 'DJ',
+ 'DM',
+ 'DO',
+ 'EC',
+ 'EG',
+ 'SV',
+ 'ER',
+ 'SZ',
+ 'ET',
+ 'FK',
+ 'FO',
+ 'FJ',
+ 'PF',
+ 'GA',
+ 'GM',
+ 'GE',
+ 'GI',
+ 'GL',
+ 'GD',
+ 'GT',
+ 'GN',
+ 'GW',
+ 'GY',
+ 'HN',
+ 'IE',
+ 'JM',
+ 'JO',
+ 'KZ',
+ 'KE',
+ 'KI',
+ 'KW',
+ 'KG',
+ 'LS',
+ 'LI',
+ 'LT',
+ 'LU',
+ 'MG',
+ 'MW',
+ 'ML',
+ 'MH',
+ 'MR',
+ 'MU',
+ 'MS',
+ 'MA',
+ 'MZ',
+ 'NA',
+ 'NR',
+ 'AN',
+ 'NC',
+ 'NZ',
+ 'NI',
+ 'NE',
+ 'NU',
+ 'NF',
+ 'OM',
+ 'PW',
+ 'PA',
+ 'PG',
+ 'PE',
+ 'PN',
+ 'QA',
+ 'RW',
+ 'SM',
+ 'ST',
+ 'SA',
+ 'SN',
+ 'RS',
+ 'SC',
+ 'SL',
+ 'SB',
+ 'SO',
+ 'ZA',
+ 'SH',
+ 'KN',
+ 'LC',
+ 'PM',
+ 'VC',
+ 'SR',
+ 'SJ',
+ 'TJ',
+ 'TZ',
+ 'TG',
+ 'TT',
+ 'TN',
+ 'TM',
+ 'TC',
+ 'TV',
+ 'UG',
+ 'UA',
+ 'AE',
+ 'US',
+ 'UY',
+ 'VU',
+ 'VA',
+ 'VE',
+ 'WF',
+ 'YE',
+ 'ZM',
+ );
+ break;
+
+ default:
+ $countries = array();
+ break;
+ }//end switch
+
+ if ( $country && in_array( $country, $countries, true ) ) {
+ return $lang . '-' . $country;
+ }
+
+ return 'en-US';
+ }
+
+ /**
+ * Get the style for the PayPal form.
+ *
+ * @param int $form_id
+ *
+ * @return array
+ */
+ public static function get_style_for_js( $form_id ) {
+ $settings = self::get_style_settings_for_form( $form_id );
+
+ $style = array(
+ 'body' => array(
+ 'padding' => 0,
+ ),
+ 'input' => array(
+ 'font-size' => $settings['field_font_size'],
+ 'color' => $settings['text_color'],
+ 'font-weight' => $settings['field_weight'],
+ 'padding' => $settings['field_pad'],
+ 'line-height' => 1.3,
+ 'border' => self::get_border_shorthand( $settings ),
+ 'border-radius' => self::get_border_radius( $settings ),
+ ),
+ 'input::placeholder' => array(
+ 'color' => $settings['text_color_disabled'],
+ ),
+ '.invalid' => array(
+ 'color' => $settings['border_color_error'],
+ ),
+ );
+
+ if ( ! empty( $settings['font'] ) ) {
+ $style['input']['font-family'] = $settings['font'];
+ }
+
+ /**
+ * Filter the PayPal card field styles.
+ *
+ * @since x.x
+ *
+ * @param array $style
+ * @param array $settings
+ * @param int $form_id
+ */
+ return apply_filters( 'frm_paypal_style', $style, $settings, $form_id );
+ }
+
+ /**
+ * Get PayPal button style configuration from form action settings.
+ * Documentation at https://developer.paypal.com/sdk/js/reference/#style
+ *
+ * @since x.x
+ *
+ * @param WP_Post $form_action The form action containing button settings.
+ *
+ * @return array The style configuration array for PayPal button.
+ */
+ private static function get_button_style_for_js( $form_action ) {
+ $button_color = $form_action->post_content['button_color'] ?? 'default';
+ $button_label = $form_action->post_content['button_label'] ?? 'paypal';
+ $button_border_radius = $form_action->post_content['button_border_radius'] ?? 10;
+
+ $style_for_js = array(
+ 'layout' => 'vertical',
+ 'color' => $button_color,
+ 'label' => $button_label,
+ 'borderRadius' => (int) $button_border_radius,
+ 'height' => 40,
+ );
+
+ // Unset the color so PayPal can use its defaults.
+ // Many buttons have different colors
+ if ( 'default' === $button_color ) {
+ unset( $style_for_js['color'] );
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param array $style_for_js
+ * @param WP_Post $form_action
+ */
+ return apply_filters( 'frm_paypal_button_style', $style_for_js, $form_action );
+ }
+
+ /**
+ * Get and format the style settings for JavaScript to use with the get_style function.
+ *
+ * @param int $form_id
+ *
+ * @return array
+ */
+ private static function get_style_settings_for_form( $form_id ) {
+ if ( ! $form_id ) {
+ return array();
+ }
+
+ $style = FrmStylesController::get_form_style( $form_id );
+
+ if ( ! $style ) {
+ return array();
+ }
+
+ $settings = FrmStylesHelper::get_settings_for_output( $style );
+ $disallowed = array( ';', ':', '!important' );
+
+ foreach ( $settings as $k => $s ) {
+ if ( is_string( $s ) ) {
+ $settings[ $k ] = str_replace( $disallowed, '', $s );
+ }
+ }
+
+ return $settings;
+ }
+
+ /**
+ * Get the border width for PayPal card fields.
+ *
+ * @since x.x
+ *
+ * @param array $settings
+ *
+ * @return string
+ */
+ private static function get_border_width( $settings ) {
+ if ( ! empty( $settings['field_shape_type'] ) && 'underline' === $settings['field_shape_type'] ) {
+ return '0 0 ' . $settings['field_border_width'] . ' 0';
+ }
+ return $settings['field_border_width'];
+ }
+
+ /**
+ * Get the border radius for PayPal card fields.
+ *
+ * @since x.x
+ *
+ * @param array $settings
+ *
+ * @return string
+ */
+ private static function get_border_radius( $settings ) {
+ if ( ! empty( $settings['field_shape_type'] ) ) {
+ switch ( $settings['field_shape_type'] ) {
+ case 'underline':
+ case 'regular':
+ return '0px';
+ case 'circle':
+ return '30px';
+ }
+ }
+ return $settings['border_radius'];
+ }
+
+ /**
+ * Get the border shorthand for PayPal card fields.
+ *
+ * @since x.x
+ *
+ * @param array $settings
+ *
+ * @return string
+ */
+ private static function get_border_shorthand( $settings ) {
+ $width = self::get_border_width( $settings );
+ $style = $settings['field_border_style'];
+ $color = $settings['border_color'];
+
+ return "{$width} {$style} {$color}";
+ }
+
+ /**
+ * If the names are being used on the CC fields,
+ * make sure it doesn't prevent the submission if PayPal has approved.
+ *
+ * @since x.x
+ *
+ * @param array $errors
+ * @param stdClass $field
+ *
+ * @return array
+ */
+ public static function remove_cc_validation( $errors, $field ) {
+ $paypal_order_id = FrmAppHelper::get_post_param( 'paypal_order_id', '', 'sanitize_text_field' );
+ $paypal_subscription_id = FrmAppHelper::get_post_param( 'paypal_subscription_id', '', 'sanitize_text_field' );
+
+ if ( ! $paypal_order_id && ! $paypal_subscription_id ) {
+ return $errors;
+ }
+
+ return FrmTransLiteActionsController::remove_cc_errors( $errors, $field );
+ }
+
+ /**
+ * @since x.x
+ *
+ * @return void
+ */
+ public static function actions_js() {
+ wp_enqueue_script(
+ 'frm_paypal_admin',
+ FrmPayPalLiteAppHelper::plugin_url() . 'js/action.js',
+ array( 'wp-hooks', 'wp-i18n' ),
+ FrmAppHelper::plugin_version()
+ );
+ }
+
+ /**
+ * Modify the new action post data to use the payment action type when the PayPal plugin is not active.
+ * This works better than having it disabled even when PayPal is supported.
+ *
+ * @since x.x
+ *
+ * @return void
+ */
+ public static function maybe_modify_new_action_post_data() {
+ $action_type = FrmAppHelper::get_param( 'type', '', 'post', 'sanitize_text_field' );
+
+ if ( 'paypal-legacy' === $action_type ) {
+ $_POST['type'] = 'paypal';
+ return;
+ }
+
+ if ( ! in_array( $action_type, array( 'paypal', 'stripe', 'square' ), true ) ) {
+ return;
+ }
+
+ $_POST['type'] = 'payment';
+
+ add_filter(
+ 'frm_form_payment_action_settings',
+ /**
+ * @param WP_Post $action_settings
+ *
+ * @return WP_Post
+ */
+ function ( $action_settings ) use ( $action_type ) {
+ return self::set_gateway_as_default( $action_settings, $action_type );
+ }
+ );
+ }
+
+ /**
+ * Set the gateway to PayPal as the default.
+ *
+ * @param WP_Post $action_settings
+ * @param string $action_type
+ *
+ * @return WP_Post
+ */
+ private static function set_gateway_as_default( $action_settings, $action_type ) {
+ $action_settings->post_content['gateway'] = array( $action_type );
+ return $action_settings;
+ }
+
+ /**
+ * Print additional options for Stripe action settings.
+ *
+ * @param array $atts
+ *
+ * @return void
+ */
+ public static function add_action_options( $atts ) {
+ $form_action = $atts['form_action'];
+ $action_control = $atts['action_control'];
+
+ include FrmPayPalLiteAppHelper::plugin_path() . '/views/settings/action-settings-options.php';
+ }
+
+ /**
+ * Print additional options for button settings.
+ *
+ * @since x.x
+ *
+ * @param array|FrmFormAction $args_or_action_control Either the args array with form_action and action_control, or the action_control object.
+ * @param WP_Post $form_action The form action object (when called directly).
+ *
+ * @return void
+ */
+ public static function add_button_settings_section( $args_or_action_control, $form_action = null ) {
+ if ( is_array( $args_or_action_control ) ) {
+ $form_action = $args_or_action_control['form_action'];
+ $action_control = $args_or_action_control['action_control'];
+ } else {
+ $action_control = $args_or_action_control;
+ }
+
+ include FrmPayPalLiteAppHelper::plugin_path() . '/views/settings/button-settings.php';
+ }
+
+ /**
+ * Add PayPal subscription settings (product name and product type) after payment type.
+ *
+ * @since x.x
+ *
+ * @param array $args Arguments containing form_action and action_control.
+ *
+ * @return void
+ */
+ public static function add_paypal_subscription_settings_from_hook( $args ) {
+ $form_action = $args['form_action'];
+ $action_control = $args['action_control'];
+
+ $product_type_value = $form_action->post_content['product_type'] ?? '';
+ ?>
+
+
+
+
+ *
+
+
+
+
+
+
+
+
+
+ >
+ >
+ >
+
+
+
+
+ field_options['is_paypal_order_field'] = 1;
+
+ FrmField::update( $field_id, array( 'field_options' => $field->field_options ) );
+
+ $settings[ $setting_key ] = $field_id;
+
+ return $settings;
+ }
+
+ /**
+ * @return string
+ */
+ private static function get_client_id() {
+ // TODO: This will need logic for a production client ID as well.
+ // This is currently just for testing.
+ return 'AYTiIIchQiekyGhJouWoLapPfjijirOtKHSN255SLhcP0TIaWBID-zxsYDaNmP4fXL6YcQxiSIMS0Lwu';
+ }
+
+ /**
+ * @param array $atts
+ *
+ * @return void
+ */
+ public static function show_paypal_button_settings( $atts ) {
+ $form_action = $atts['form_action'];
+ $action_control = $atts['action_control'];
+
+ // End the payment settings section.
+ echo ' ';
+
+ self::add_button_settings_section( $action_control, $form_action );
+
+ // Open up a div tag since the payment section is closed after this and we already ended the section.
+ // This results in an empty div tag but it allows us to inject these options without requiring
+ // any updates in the payments submodule.
+ echo '';
+ }
+}
diff --git a/paypal/controllers/FrmPayPalLiteAppController.php b/paypal/controllers/FrmPayPalLiteAppController.php
new file mode 100644
index 0000000000..ac506b2a3a
--- /dev/null
+++ b/paypal/controllers/FrmPayPalLiteAppController.php
@@ -0,0 +1,862 @@
+ 'PayPal',
+ 'user_label' => __( 'Payment', 'formidable' ),
+ 'class' => 'PayPalLite',
+ 'recurring' => true,
+ 'include' => array(
+ 'billing_first_name',
+ 'billing_last_name',
+ 'credit_card',
+ 'billing_address',
+ ),
+ );
+ return $gateways;
+ }
+
+ /**
+ * Handle the request to initialize with PayPal Api
+ */
+ public static function handle_oauth() {
+ FrmAppHelper::permission_check( 'frm_change_settings' );
+
+ if ( ! check_admin_referer( 'frm_ajax', 'nonce' ) ) {
+ wp_send_json_error();
+ }
+
+ $redirect_url = FrmPayPalLiteConnectHelper::get_oauth_redirect_url();
+
+ if ( false === $redirect_url ) {
+ wp_send_json_error( 'Unable to connect to PayPal successfully' );
+ }
+
+ $response_data = array(
+ 'redirect_url' => $redirect_url,
+ );
+ wp_send_json_success( $response_data );
+ }
+
+ public static function handle_disconnect() {
+ FrmAppHelper::permission_check( 'frm_change_settings' );
+
+ if ( ! check_admin_referer( 'frm_ajax', 'nonce' ) ) {
+ wp_send_json_error();
+ }
+
+ FrmPayPalLiteConnectHelper::handle_disconnect();
+ wp_send_json_success();
+ }
+
+ /**
+ * Get the current amount for a PayPal action via AJAX.
+ * Used to update the Pay Later messaging when price fields change.
+ *
+ * @since x.x
+ *
+ * @return void
+ */
+ public static function get_amount() {
+ check_ajax_referer( 'frm_paypal_ajax', 'nonce' );
+
+ $form_id = FrmAppHelper::get_post_param( 'form_id', 0, 'absint' );
+
+ if ( ! $form_id ) {
+ wp_send_json_error( __( 'Invalid form ID', 'formidable' ) );
+ }
+
+ $actions = FrmPayPalLiteActionsController::get_actions_before_submit( $form_id );
+
+ if ( ! $actions ) {
+ wp_send_json_error( __( 'No PayPal actions found for this form', 'formidable' ) );
+ }
+
+ $action = reset( $actions );
+ $amount = self::get_amount_value_for_verification( $action );
+
+ wp_send_json_success( array( 'amount' => $amount ) );
+ }
+
+ /**
+ * Extract pricing data from posted form values.
+ *
+ * @since x.x
+ *
+ * @param int $form_id The form ID.
+ *
+ * @return array Array of products with prices and quantities.
+ */
+ private static function get_pricing_data_from_posted_values( $form_id ) {
+ $products = array();
+ $fields = FrmField::get_all_for_form( $form_id );
+
+ if ( ! $fields ) {
+ return $products;
+ }
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
+ $posted_data = $_POST['item_meta'] ?? array();
+
+ foreach ( $fields as $field ) {
+ if ( ! in_array( $field->type, array( 'product', 'quantity', 'total' ), true ) ) {
+ continue;
+ }
+
+ $field_id = $field->id;
+ $value = $posted_data[ $field_id ] ?? '';
+
+ if ( ! $value ) {
+ continue;
+ }
+
+ if ( 'product' === $field->type ) {
+ $product_field = FrmFieldFactory::get_field_object( $field );
+
+ if ( method_exists( $product_field, 'get_posted_price' ) ) {
+ $price = $product_field->get_posted_price( $value );
+
+ if ( $price ) {
+ $products[] = array(
+ 'name' => $field->name,
+ 'price' => is_array( $price ) ? array_sum( $price ) : $price,
+ 'quantity' => 1,
+ 'type' => 'product',
+ 'field_id' => $field_id,
+ );
+ }
+ }
+ } elseif ( 'quantity' === $field->type ) {
+ $quantity = is_numeric( $value ) ? (int) $value : 1;
+ // Quantity fields are linked to product fields via product_field setting
+ $product_field_ids = FrmField::get_option( $field, 'product_field' );
+
+ if ( $product_field_ids ) {
+ // This quantity will be associated with its product field
+ // We'll handle the association in the product processing
+ $products[] = array(
+ 'name' => $field->name,
+ 'price' => 0,
+ // Quantity fields don't have price
+ 'quantity' => $quantity,
+ 'type' => 'quantity',
+ 'product_field_ids' => (array) $product_field_ids,
+ );
+ }
+ }//end if
+ }//end foreach
+
+ // Associate quantity fields with their products
+ $final_products = array();
+ $product_quantities = array();
+
+ foreach ( $products as $item ) {
+ if ( 'quantity' !== $item['type'] ) {
+ continue;
+ }
+
+ foreach ( $item['product_field_ids'] as $product_field_id ) {
+ $product_quantities[ $product_field_id ] = $item['quantity'];
+ }
+ }
+
+ foreach ( $products as $item ) {
+ if ( 'product' !== $item['type'] ) {
+ continue;
+ }
+
+ $quantity = $product_quantities[ $item['field_id'] ] ?? 1;
+ $final_products[] = array(
+ 'name' => $item['name'],
+ 'price' => $item['price'],
+ 'quantity' => $quantity,
+ );
+ }
+
+ return $final_products;
+ }
+
+ /**
+ * Create a PayPal order via AJAX.
+ */
+ public static function create_order() {
+ check_ajax_referer( 'frm_paypal_ajax', 'nonce' );
+
+ // Check if PayPal is connected before attempting to create an order.
+ $connection_check = self::check_paypal_connection();
+ if ( is_wp_error( $connection_check ) ) {
+ wp_send_json_error( $connection_check->get_error_message() );
+ }
+
+ $form_id = FrmAppHelper::get_post_param( 'form_id', 0, 'absint' );
+
+ if ( ! $form_id ) {
+ wp_send_json_error( __( 'Invalid form ID', 'formidable' ) );
+ }
+
+ $payment_source = FrmAppHelper::get_post_param( 'payment_source', '', 'sanitize_text_field' );
+
+ if ( ! $payment_source ) {
+ wp_send_json_error( __( 'No payment source provided', 'formidable' ) );
+ }
+
+ if ( ! in_array( $payment_source, self::get_valid_payment_sources(), true ) ) {
+ wp_send_json_error( __( 'Invalid payment source', 'formidable' ) );
+ }
+
+ $actions = FrmPayPalLiteActionsController::get_actions_before_submit( $form_id );
+
+ if ( ! $actions ) {
+ wp_send_json_error( __( 'No PayPal actions found for this form', 'formidable' ) );
+ }
+
+ $action = reset( $actions );
+ $amount = self::get_amount_value_for_verification( $action );
+ $payer = self::get_payer_data_from_posted_values( $action );
+ $shipping = self::get_shipping_data_from_posted_values( $action );
+ $shipping_preference = self::get_shipping_preference( $action );
+ $pricing_data = self::get_pricing_data_from_posted_values( $form_id );
+
+ // PayPal expects the amount in a format like 10.00, so format it.
+ $amount = number_format( floatval( $amount ), 2, '.', '' );
+ $currency = strtoupper( $action->post_content['currency'] );
+
+ $order_response = FrmPayPalLiteConnectHelper::create_order( $amount, $currency, $payment_source, $payer, $shipping_preference, $pricing_data, $shipping );
+
+ if ( class_exists( 'FrmLog' ) ) {
+ $log = new FrmLog();
+ $log->add(
+ array(
+ 'title' => 'PayPal Order Response',
+ 'content' => print_r( $order_response, true ),
+ )
+ );
+ }
+
+ if ( false === $order_response ) {
+ $error = FrmPayPalLiteConnectHelper::get_latest_error_from_paypal_api();
+ wp_send_json_error( self::format_paypal_error( $error, 'Failed to create PayPal order' ) );
+ }
+
+ if ( ! isset( $order_response->order_id ) ) {
+ // Check if the response is a structured error with debug_id
+ if ( isset( $order_response->message ) && isset( $order_response->debug_id ) ) {
+ wp_send_json_error( self::format_paypal_error( $order_response->message . '{{debug_id:' . $order_response->debug_id . '}}', 'Failed to create PayPal order' ) );
+ }
+ wp_send_json_error( 'Failed to create PayPal order' );
+ }
+
+ wp_send_json_success( array( 'orderID' => $order_response->order_id ) );
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param WP_Post $action
+ *
+ * @return array
+ */
+ private static function get_payer_data_from_posted_values( $action ) {
+ $email_setting = $action->post_content['email'];
+ $first_name_setting = $action->post_content['billing_first_name'];
+ $last_name_setting = $action->post_content['billing_last_name'];
+ $address_setting = $action->post_content['billing_address'];
+
+ $entry = self::generate_false_entry();
+ $first_name = $first_name_setting && isset( $entry->metas[ $first_name_setting ] ) ? $entry->metas[ $first_name_setting ] : '';
+ $last_name = $last_name_setting && isset( $entry->metas[ $last_name_setting ] ) ? $entry->metas[ $last_name_setting ] : '';
+ $address = $address_setting && isset( $entry->metas[ $address_setting ] ) ? $entry->metas[ $address_setting ] : '';
+
+ if ( is_array( $first_name ) && isset( $first_name['first'] ) ) {
+ $first_name = $first_name['first'];
+ }
+
+ if ( is_array( $last_name ) && isset( $last_name['last'] ) ) {
+ $last_name = $last_name['last'];
+ }
+
+ $payer = array();
+
+ if ( $first_name && $last_name ) {
+ $payer['name'] = array(
+ 'given_name' => $first_name,
+ 'surname' => $last_name,
+ );
+ }
+
+ if ( $email_setting ) {
+ $shortcode_atts = array(
+ 'entry' => $entry,
+ 'form' => $action->menu_order,
+ 'value' => $email_setting,
+ );
+ $payer['email_address'] = FrmTransLiteAppHelper::process_shortcodes( $shortcode_atts );
+ }
+
+ self::maybe_add_address_data( $payer, $address, (int) $address_setting );
+
+ return $payer;
+ }
+
+ /**
+ * Build shipping data from the action's shipping field settings.
+ *
+ * @since x.x
+ *
+ * @param WP_Post $action
+ *
+ * @return array
+ */
+ private static function get_shipping_data_from_posted_values( $action ) {
+ $settings = $action->post_content;
+
+ $email_setting = ! empty( $settings['shipping_email'] ) ? $settings['shipping_email'] : '';
+ $first_name_setting = ! empty( $settings['shipping_first_name'] ) ? $settings['shipping_first_name'] : '';
+ $last_name_setting = ! empty( $settings['shipping_last_name'] ) ? $settings['shipping_last_name'] : '';
+ $address_setting = ! empty( $settings['shipping_address'] ) ? $settings['shipping_address'] : '';
+
+ if ( ! $email_setting && ! $first_name_setting && ! $last_name_setting && ! $address_setting ) {
+ return array();
+ }
+
+ $entry = self::generate_false_entry();
+ $first_name = $first_name_setting && isset( $entry->metas[ $first_name_setting ] ) ? $entry->metas[ $first_name_setting ] : '';
+ $last_name = $last_name_setting && isset( $entry->metas[ $last_name_setting ] ) ? $entry->metas[ $last_name_setting ] : '';
+
+ if ( is_array( $first_name ) && isset( $first_name['first'] ) ) {
+ $first_name = $first_name['first'];
+ }
+
+ if ( is_array( $last_name ) && isset( $last_name['last'] ) ) {
+ $last_name = $last_name['last'];
+ }
+
+ $shipping = array();
+
+ if ( $email_setting ) {
+ $shortcode_atts = array(
+ 'entry' => $entry,
+ 'form' => $action->menu_order,
+ 'value' => $email_setting,
+ );
+ $email = FrmTransLiteAppHelper::process_shortcodes( $shortcode_atts );
+ if ( $email ) {
+ $shipping['email_address'] = $email;
+ }
+ }
+
+ if ( $first_name || $last_name ) {
+ $shipping['name'] = array(
+ 'full_name' => trim( $first_name . ' ' . $last_name ),
+ );
+ }
+
+ if ( $address_setting ) {
+ $address = isset( $entry->metas[ $address_setting ] ) ? $entry->metas[ $address_setting ] : '';
+ $formatted_address = self::format_address_for_paypal( $address, (int) $address_setting );
+
+ if ( $formatted_address ) {
+ $shipping['address'] = $formatted_address;
+ }
+ }
+
+ return $shipping;
+ }
+
+ /**
+ * Format a Formidable address field value into a PayPal address array.
+ *
+ * @since x.x
+ *
+ * @param mixed $address The address field value.
+ * @param int $address_field_id The field ID.
+ *
+ * @return array|false The formatted address array, or false if invalid.
+ */
+ private static function format_address_for_paypal( $address, $address_field_id ) {
+ if ( ! is_array( $address ) || ! isset( $address['line1'] ) || ! is_callable( 'FrmProAddressesController::get_country_code' ) ) {
+ return false;
+ }
+
+ $address_field = FrmField::getOne( $address_field_id );
+
+ if ( ! $address_field ) {
+ return false;
+ }
+
+ if ( 'us' === $address_field->field_options['address_type'] ) {
+ $country_code = 'US';
+ } else {
+ $country_code = FrmProAddressesController::get_country_code( $address['country'] );
+ }
+
+ if ( ! $address['line1'] || ! $address['city'] || ! $address['state'] || ! $address['zip'] || ! $country_code ) {
+ return false;
+ }
+
+ return array(
+ 'address_line_1' => $address['line1'],
+ 'address_line_2' => $address['line2'] ?? '',
+ 'admin_area_2' => $address['city'],
+ 'admin_area_1' => $address['state'],
+ 'postal_code' => $address['zip'],
+ 'country_code' => $country_code,
+ );
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param WP_Post $action
+ *
+ * @return string
+ */
+ private static function get_shipping_preference( $action ) {
+ $setting = ! empty( $action->post_content['shipping_preference'] ) ? $action->post_content['shipping_preference'] : 'use_paypal_account_data';
+
+ switch ( $setting ) {
+ case 'use_address_field_data':
+ return 'SET_PROVIDED_ADDRESS';
+
+ case 'no_shipping':
+ return 'NO_SHIPPING';
+
+ case 'use_paypal_account_data':
+ default:
+ return 'GET_FROM_FILE';
+ }
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param array $payer
+ * @param array $address
+ * @param int $address_field_id
+ *
+ * @return void
+ */
+ private static function maybe_add_address_data( &$payer, $address, $address_field_id ) {
+ if ( ! is_array( $address ) || ! isset( $address['line1'] ) || ! is_callable( 'FrmProAddressesController::get_country_code' ) ) {
+ return;
+ }
+
+ $address_field = FrmField::getOne( $address_field_id );
+
+ if ( ! $address_field ) {
+ return;
+ }
+
+ if ( 'us' === $address_field->field_options['address_type'] ) {
+ $country_code = 'US';
+ } else {
+ $country_code = FrmProAddressesController::get_country_code( $address['country'] );
+ }
+
+ if ( ! $address['line1'] || ! $address['city'] || ! $address['state'] || ! $address['zip'] || ! $country_code ) {
+ return;
+ }
+
+ $payer['address'] = array(
+ 'address_line_1' => $address['line1'],
+ 'address_line_2' => $address['line2'] ?? '',
+ 'admin_area_2' => $address['city'],
+ 'admin_area_1' => $address['state'],
+ 'postal_code' => $address['zip'],
+ 'country_code' => $country_code,
+ );
+ }
+
+ /**
+ * @since x.x
+ *
+ * @return array
+ */
+ private static function get_valid_payment_sources() {
+ $sources = array(
+ 'card',
+ 'paypal',
+ 'apple_pay',
+ 'bancontact',
+ 'blik',
+ 'eps',
+ 'giropay',
+ 'ideal',
+ 'mybank',
+ 'p24',
+ 'sepa',
+ 'sofort',
+ 'trustly',
+ 'venmo',
+ 'paylater',
+ 'google_pay',
+ );
+
+ /**
+ * @since x.x
+ *
+ * @param array $sources
+ */
+ return apply_filters( 'frm_paypal_valid_payment_sources', $sources );
+ }
+
+ /**
+ * Get the amount value for verification.
+ *
+ * @param WP_Post $action
+ *
+ * @return string
+ */
+ private static function get_amount_value_for_verification( $action ) {
+ $amount = $action->post_content['amount'];
+
+ if ( ! str_contains( $amount, '[' ) ) {
+ return $amount;
+ }
+
+ $form = FrmForm::getOne( $action->menu_order );
+
+ if ( ! $form ) {
+ return $amount;
+ }
+
+ // Update amount based on field shortcodes.
+ $entry = self::generate_false_entry();
+
+ return number_format( floatval( FrmPayPalLiteActionsController::prepare_amount( $amount, compact( 'form', 'entry', 'action' ) ) ) / 100, 2 );
+ }
+
+ /**
+ * Create an entry object with posted values.
+ *
+ * @since x.x
+ *
+ * @return stdClass
+ */
+ private static function generate_false_entry() {
+ $entry = new stdClass();
+ $entry->post_id = 0;
+ $entry->id = 0;
+ $entry->item_key = '';
+ $entry->metas = array();
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
+ foreach ( $_POST as $k => $v ) {
+ $k = sanitize_text_field( stripslashes( $k ) );
+ $v = wp_unslash( $v );
+
+ if ( $k !== 'item_meta' ) {
+ FrmAppHelper::sanitize_value( 'wp_kses_post', $v );
+ $entry->{$k} = $v;
+ continue;
+ }
+
+ if ( ! is_array( $v ) ) {
+ continue;
+ }
+
+ foreach ( $v as $f => $value ) {
+ FrmAppHelper::sanitize_value( 'wp_kses_post', $value );
+ $entry->metas[ absint( $f ) ] = $value;
+ }
+ }
+
+ return $entry;
+ }
+
+ /**
+ * Create a PayPal subscription object via AJAX.
+ *
+ * @return void
+ */
+ public static function create_subscription() {
+ check_ajax_referer( 'frm_paypal_ajax', 'nonce' );
+
+ // Check if PayPal is connected before attempting to create a subscription.
+ $connection_check = self::check_paypal_connection();
+ if ( is_wp_error( $connection_check ) ) {
+ wp_send_json_error( $connection_check->get_error_message() );
+ }
+
+ $form_id = FrmAppHelper::get_post_param( 'form_id', 0, 'absint' );
+
+ if ( ! $form_id ) {
+ wp_send_json_error( __( 'Invalid form ID', 'formidable' ) );
+ }
+
+ $actions = FrmPayPalLiteActionsController::get_actions_before_submit( $form_id );
+
+ if ( ! $actions ) {
+ wp_send_json_error( __( 'No PayPal actions found for this form', 'formidable' ) );
+ }
+
+ $action = reset( $actions );
+ $amount = self::get_amount_value_for_verification( $action );
+
+ // PayPal expects the amount in a format like 10.00, so format it.
+ $amount = number_format( floatval( $amount ), 2, '.', '' );
+ $currency = strtoupper( $action->post_content['currency'] );
+
+ // Pass $product_name, $interval and $interval_count to the helper
+ // As well as trial period and the maximum number of payments.
+ // Also send subscriber email.
+ $product_name = self::process_shortcodes_for_action( $action->post_content['product_name'] ?? '', $action );
+ $interval = $action->post_content['interval'] ?? '';
+ $interval_count = $action->post_content['interval_count'] ?? 1;
+ $trial_period = $action->post_content['trial_period'] ?? '';
+ $payment_limit = $action->post_content['payment_limit'] ?? '';
+ $product_type = $action->post_content['product_type'] ?? 'SERVICE';
+
+ if ( ! $product_name ) {
+ wp_send_json_error( __( 'A product name is required for subscriptions. Please update your PayPal action settings.', 'formidable' ) );
+ }
+
+ if ( ! $interval ) {
+ wp_send_json_error( __( 'A billing interval is required for subscriptions. Please update your PayPal action settings.', 'formidable' ) );
+ }
+
+ if ( ! $amount || '0.00' === $amount ) {
+ wp_send_json_error( __( 'A valid amount is required for subscriptions.', 'formidable' ) );
+ }
+
+ $data = array(
+ 'amount' => $amount,
+ 'currency' => $currency,
+ 'product_name' => $product_name,
+ 'product_type' => $product_type,
+ 'interval' => $interval,
+ 'interval_count' => $interval_count,
+ 'trial_period' => $trial_period,
+ 'payment_limit' => $payment_limit,
+ 'payer' => self::get_payer_data_from_posted_values( $action ),
+ 'shipping_preference' => self::get_shipping_preference( $action ),
+ );
+
+ $vault_setup_token = FrmAppHelper::get_post_param( 'vault_setup_token', '', 'sanitize_text_field' );
+
+ if ( $vault_setup_token ) {
+ $data['vault_setup_token'] = $vault_setup_token;
+ }
+
+ $response = FrmPayPalLiteConnectHelper::create_subscription( $data );
+
+ if ( false === $response ) {
+ $error = FrmPayPalLiteConnectHelper::get_latest_error_from_paypal_api();
+ wp_send_json_error( self::format_paypal_error( $error, 'Failed to create PayPal subscription' ) );
+ }
+
+ // Check if response is a structured error with message and debug_id (array or object)
+ if ( ( is_array( $response ) || is_object( $response ) ) && isset( $response->message ) && isset( $response->debug_id ) ) {
+ wp_send_json_error( $response );
+ }
+
+ if ( ! isset( $response->subscription_id ) ) {
+ wp_send_json_error( 'Failed to create PayPal subscription' );
+ }
+
+ wp_send_json_success( array( 'subscriptionID' => $response->subscription_id ) );
+ }
+
+ public static function create_vault_setup_token() {
+ check_ajax_referer( 'frm_paypal_ajax', 'nonce' );
+
+ $payment_source = FrmAppHelper::get_post_param( 'payment_source', 'card', 'sanitize_text_field' );
+
+ $data = array(
+ 'payment_source' => $payment_source,
+ );
+
+ $response = FrmPayPalLiteConnectHelper::create_vault_setup_token( $data );
+
+ if ( false === $response ) {
+ wp_send_json_error( 'Failed to create PayPal vault setup token' );
+ }
+
+ if ( ! isset( $response->token ) ) {
+ wp_send_json_error( 'Failed to create PayPal vault setup token' );
+ }
+
+ wp_send_json_success( array( 'token' => $response->token ) );
+ }
+
+ /**
+ * Handle a PayPal error reported by the frontend JavaScript.
+ *
+ * Logs the debug ID and error details, then returns a display message
+ * that includes the debug ID only when the current user has permission.
+ *
+ * @since x.x
+ *
+ * @return void
+ */
+ public static function report_error() {
+ check_ajax_referer( 'frm_paypal_ajax', 'nonce' );
+
+ $error_message = substr( FrmAppHelper::get_post_param( 'error_message', '', 'sanitize_text_field' ), 0, 500 );
+ $debug_id = substr( FrmAppHelper::get_post_param( 'debug_id', '', 'sanitize_text_field' ), 0, 50 );
+ $context = substr( FrmAppHelper::get_post_param( 'context', '', 'sanitize_text_field' ), 0, 100 );
+
+ if ( $debug_id ) {
+ self::log_paypal_debug_id( $debug_id, $error_message, $context );
+ }
+
+ $display_message = $error_message ?: __( 'Payment failed. Please try again.', 'formidable' );
+
+ if ( $debug_id && current_user_can( 'frm_change_settings' ) ) {
+ $display_message .= "\n\nDebug ID: " . $debug_id;
+ }
+
+ wp_send_json_success( array( 'message' => $display_message ) );
+ }
+
+ /**
+ * Log a PayPal debug ID to the recent debug IDs option.
+ *
+ * Stores up to 20 entries, newest first.
+ *
+ * @since x.x
+ *
+ * @param string $debug_id The PayPal debug ID.
+ * @param string $error_message The associated error message.
+ * @param string $context The context where the error occurred (e.g. 'create_order', 'card_submit').
+ *
+ * @return void
+ */
+ public static function log_paypal_debug_id( $debug_id, $error_message = '', $context = '' ) {
+ $option_name = 'frm_paypal_debug_ids';
+ $max_entries = 20;
+ $entries = get_option( $option_name, array() );
+
+ if ( ! is_array( $entries ) ) {
+ $entries = array();
+ }
+
+ if ( $error_message && preg_match( '/^[A-Z_]+$/', $error_message ) ) {
+ $prefixes = array( 'REFUND_FAILED_', 'REFUND_' );
+ $reason = str_replace( $prefixes, '', $error_message );
+
+ if ( $reason !== $error_message ) {
+ $error_message = 'Refund Failed (' . ucwords( strtolower( str_replace( '_', ' ', $reason ) ) ) . ')';
+ } else {
+ $error_message = ucwords( strtolower( str_replace( '_', ' ', $error_message ) ) );
+ }
+ }
+
+ $entry = array(
+ 'debug_id' => $debug_id,
+ 'error_message' => $error_message,
+ 'context' => $context,
+ 'timestamp' => gmdate( 'Y-m-d H:i:s' ),
+ );
+
+ array_unshift( $entries, $entry );
+ $entries = array_slice( $entries, 0, $max_entries );
+
+ update_option( $option_name, $entries, false );
+ }
+
+ /**
+ * Process shortcodes in an action setting value using posted form data.
+ *
+ * @since x.x
+ *
+ * @param string $value The value that may contain shortcodes.
+ * @param WP_Post $action The payment action.
+ *
+ * @return string
+ */
+ private static function process_shortcodes_for_action( $value, $action ) {
+ if ( ! str_contains( $value, '[' ) ) {
+ return $value;
+ }
+
+ $form = FrmForm::getOne( $action->menu_order );
+
+ if ( ! $form ) {
+ return $value;
+ }
+
+ $entry = self::generate_false_entry();
+
+ return FrmTransLiteAppHelper::process_shortcodes(
+ array(
+ 'value' => $value,
+ 'form' => $form,
+ 'entry' => $entry,
+ )
+ );
+ }
+
+ /**
+ * Check if PayPal is connected before attempting to create an order or subscription.
+ *
+ * @since x.x
+ *
+ * @return true|WP_Error True if connected, WP_Error with message if not connected.
+ */
+ private static function check_paypal_connection() {
+ $merchant_id = FrmPayPalLiteConnectHelper::get_merchant_id();
+
+ if ( ! $merchant_id ) {
+ $message = __( 'PayPal is not connected. Please connect your PayPal account to process payments.', 'formidable' );
+
+ if ( current_user_can( 'frm_change_settings' ) ) {
+ $message .= ' ' . __( 'You can connect PayPal in Global Settings, under the Payments section.', 'formidable' );
+ }
+
+ return new WP_Error( 'paypal_not_connected', $message );
+ }
+
+ return true;
+ }
+
+ /**
+ * Parse a PayPal API error string and conditionally include the debug ID.
+ *
+ * The PayPal API addon embeds debug IDs using a {{debug_id:...}} delimiter.
+ * This method strips that token and appends a human-readable debug ID line
+ * only for users who can edit forms.
+ *
+ * @since x.x
+ *
+ * @param string|null $error The error string from the PayPal API, possibly containing a debug ID token.
+ * @param string $fallback The fallback message when no error is available.
+ * @return string
+ */
+ private static function format_paypal_error( $error, $fallback ) {
+ if ( ! $error ) {
+ return $fallback;
+ }
+
+ // If error is already a structured array with message and debug_id, return it directly
+ if ( is_array( $error ) && isset( $error['message'] ) && isset( $error['debug_id'] ) ) {
+ return $error;
+ }
+
+ if ( ! preg_match( '/\{\{debug_id:([^}]+)\}\}/', $error, $matches ) ) {
+ return $error;
+ }
+
+ $clean_message = str_replace( $matches[0], '', $error );
+ $clean_message = trim( $clean_message );
+
+ // Always return structured error with debug_id so JavaScript can extract and send it
+ return array(
+ 'message' => $clean_message ?: $fallback,
+ 'debug_id' => $matches[1],
+ );
+ }
+}
diff --git a/paypal/controllers/FrmPayPalLiteEventsController.php b/paypal/controllers/FrmPayPalLiteEventsController.php
new file mode 100644
index 0000000000..5414d4db1a
--- /dev/null
+++ b/paypal/controllers/FrmPayPalLiteEventsController.php
@@ -0,0 +1,881 @@
+flush_response();
+
+ $unprocessed_event_ids = FrmPayPalLiteConnectHelper::get_unprocessed_event_ids();
+
+ if ( $unprocessed_event_ids ) {
+ $this->process_event_ids( $unprocessed_event_ids );
+ }
+
+ wp_send_json_success();
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param array $event_ids
+ *
+ * @return void
+ */
+ private function process_event_ids( $event_ids ) {
+ foreach ( $event_ids as $event_id ) {
+ if ( $this->should_skip_event( $event_id ) ) {
+ continue;
+ }
+
+ set_transient( 'frm_paypal_last_process_' . $event_id, time(), 60 );
+
+ $this->event = FrmPayPalLiteConnectHelper::get_event( $event_id );
+
+ if ( ! is_object( $this->event ) ) {
+ $this->count_failed_event( $event_id );
+ continue;
+ }
+
+ $this->handle_event();
+ $this->track_handled_event( $event_id );
+ FrmPayPalLiteConnectHelper::process_event( $event_id );
+ }
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param string $event_id
+ *
+ * @return bool True if the event should be skipped.
+ */
+ private function should_skip_event( $event_id ) {
+ if ( $this->last_attempt_to_process_event_is_too_recent( $event_id ) ) {
+ return true;
+ }
+
+ $option = get_option( self::$events_to_skip_option_name );
+
+ return is_array( $option ) && in_array( $event_id, $option, true );
+ }
+
+ /**
+ * @param string $event_id
+ *
+ * @return bool
+ */
+ private function last_attempt_to_process_event_is_too_recent( $event_id ) {
+ $last_process_attempt = get_transient( 'frm_paypal_last_process_' . $event_id );
+ return is_numeric( $last_process_attempt ) && $last_process_attempt > time() - 60;
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param string $event_id
+ *
+ * @return void
+ */
+ private function count_failed_event( $event_id ) {
+ $transient_name = 'frm_paypal_failed_event_' . $event_id;
+ $transient = get_transient( $transient_name );
+ $failed_count = is_int( $transient ) ? $transient + 1 : 1;
+ $maximum_retries = 3;
+
+ if ( $failed_count >= $maximum_retries ) {
+ $this->track_handled_event( $event_id );
+ } else {
+ set_transient( $transient_name, $failed_count, 4 * DAY_IN_SECONDS );
+ }
+ }
+
+ /**
+ * Track an event to no longer process.
+ * This is called for successful events, and also for failed events after a number of retries.
+ *
+ * @since x.x
+ *
+ * @param string $event_id
+ *
+ * @return void
+ */
+ private function track_handled_event( $event_id ) {
+ $option = get_option( self::$events_to_skip_option_name );
+
+ if ( is_array( $option ) ) {
+ if ( count( $option ) > 1000 ) {
+ // Prevent the option from getting too big by removing the front item before adding the next.
+ array_shift( $option );
+ }
+ } else {
+ $option = array();
+ }
+
+ $option[] = $event_id;
+ update_option( self::$events_to_skip_option_name, $option, false );
+ }
+
+ /**
+ * @return void
+ */
+ private function handle_event() {
+ $this->resource = $this->event->resource ?? null;
+
+ if ( ! is_object( $this->resource ) ) {
+ FrmTransLiteLog::log_message( 'PayPal Webhook Message', 'No resource object found in event' );
+ return;
+ }
+
+ $payment_events = array(
+ 'PAYMENT.CAPTURE.COMPLETED' => 'complete',
+ 'PAYMENT.CAPTURE.DECLINED' => 'failed',
+ 'PAYMENT.CAPTURE.DENIED' => 'failed',
+ 'PAYMENT.CAPTURE.REFUNDED' => 'refunded',
+ 'PAYMENT.CAPTURE.REVERSED' => 'refunded',
+ 'PAYMENT.SALE.COMPLETED' => 'complete',
+ 'PAYMENT.SALE.DENIED' => 'failed',
+ 'PAYMENT.SALE.REFUNDED' => 'refunded',
+ 'PAYMENT.SALE.REVERSED' => 'refunded',
+ );
+
+ if ( isset( $payment_events[ $this->event->event_type ] ) ) {
+ $this->status = $payment_events[ $this->event->event_type ];
+ $this->handle_payment_event();
+ return;
+ }
+
+ switch ( $this->event->event_type ) {
+ case 'BILLING.SUBSCRIPTION.ACTIVATED':
+ case 'BILLING.SUBSCRIPTION.RE-ACTIVATED':
+ $this->handle_subscription_activated();
+ break;
+
+ case 'BILLING.SUBSCRIPTION.CANCELLED':
+ case 'BILLING.SUBSCRIPTION.EXPIRED':
+ case 'BILLING.SUBSCRIPTION.SUSPENDED':
+ $this->handle_subscription_canceled();
+ break;
+
+ case 'BILLING.SUBSCRIPTION.PAYMENT.FAILED':
+ $this->handle_subscription_payment_failed();
+ break;
+
+ case 'BILLING.SUBSCRIPTION.UPDATED':
+ $this->handle_subscription_updated();
+ break;
+ }
+ }
+
+ /**
+ * Handle a payment capture or sale event by syncing the payment record.
+ *
+ * @since x.x
+ *
+ * @return void
+ */
+ private function handle_payment_event() {
+ $receipt_id = $this->get_receipt_id_for_event();
+
+ if ( ! $receipt_id ) {
+ FrmTransLiteLog::log_message( 'PayPal Webhook Message', 'No resource ID found in payment event' );
+ return;
+ }
+
+ $frm_payment = new FrmTransLitePayment();
+ $payment = $frm_payment->get_one_by( $receipt_id, 'receipt_id' );
+
+ // If no payment was found by capture ID, check for a pending payment
+ // stored with the order ID as receipt_id. Update it to the capture ID.
+ if ( ! $payment ) {
+ $payment = $this->maybe_resolve_pending_payment( $frm_payment, $receipt_id );
+ }
+
+ if ( ! $payment && $this->status === 'refunded' ) {
+ FrmTransLiteLog::log_message( 'PayPal Webhook Message', 'No action taken. The refunded payment does not exist for ' . $receipt_id );
+ return;
+ }
+
+ $run_triggers = false;
+
+ if ( ! $payment ) {
+ $payment = $this->maybe_create_subscription_payment();
+
+ if ( $payment ) {
+ $run_triggers = true;
+ }
+ } elseif ( $payment->status !== $this->status ) {
+ $payment_values = (array) $payment;
+ $is_partial_refund = $this->is_partial_refund();
+
+ if ( $is_partial_refund ) {
+ $this->set_partial_refund( $payment_values );
+ // translators: %s: The amount of money that was refunded.
+ $note = sprintf( __( 'Payment partially refunded %s', 'formidable' ), $this->get_refunded_amount() );
+ } else {
+ $payment_values['status'] = $this->status;
+ $payment->status = $this->status;
+ // translators: %s: The status of the payment.
+ $note = sprintf( __( 'Payment %s', 'formidable' ), $payment_values['status'] );
+ }
+
+ FrmTransLiteAppHelper::add_note_to_payment( $payment_values, $note );
+
+ $frm_payment->update( $payment->id, $payment_values );
+
+ if ( ! $is_partial_refund ) {
+ $run_triggers = true;
+ }
+ }//end if
+
+ if ( $run_triggers && $payment && $payment->action_id ) {
+ FrmTransLiteActionsController::trigger_payment_status_change(
+ array(
+ 'status' => $this->status,
+ 'payment' => $payment,
+ )
+ );
+ }
+ }
+
+ /**
+ * Try to create a new payment record from a subscription payment event.
+ * This handles recurring payments after the first one.
+ *
+ * @since x.x
+ *
+ * @return false|object The new payment object or false if not a subscription payment.
+ */
+ private function maybe_create_subscription_payment() {
+ $subscription_id = $this->get_subscription_id_from_resource();
+
+ if ( ! $subscription_id ) {
+ return false;
+ }
+
+ $sub = $this->get_subscription( $subscription_id );
+
+ if ( ! $sub ) {
+ return false;
+ }
+
+ $receipt_id = $this->resource->id ?? '';
+ $amount = $this->get_amount_from_resource();
+
+ $payment_values = array(
+ 'paysys' => 'paypal',
+ 'amount' => $amount,
+ 'status' => $this->status,
+ 'item_id' => $sub->item_id,
+ 'action_id' => $sub->action_id,
+ 'receipt_id' => $receipt_id,
+ 'sub_id' => $sub->id,
+ 'begin_date' => gmdate( 'Y-m-d' ),
+ 'expire_date' => '0000-00-00',
+ 'meta_value' => array(),
+ 'created_at' => current_time( 'mysql', 1 ),
+ 'test' => 'test' === FrmPayPalLiteAppHelper::active_mode() ? 1 : 0,
+ );
+
+ FrmTransLiteAppHelper::add_note_to_payment( $payment_values );
+
+ $frm_payment = new FrmTransLitePayment();
+ $existing_payment = $frm_payment->get_one_by( $receipt_id, 'receipt_id' );
+
+ if ( $existing_payment ) {
+ return false;
+ }
+
+ $existing_sub_payment = $frm_payment->get_one_by( $sub->id, 'sub_id' );
+
+ if ( $existing_sub_payment && str_starts_with( $existing_sub_payment->receipt_id, 'I-' ) ) {
+ $frm_payment->update( $existing_sub_payment->id, array( 'receipt_id' => $receipt_id ) );
+
+ $this->update_next_bill_date( $sub );
+ $this->maybe_cancel_subscription_at_limit( $sub );
+
+ return $frm_payment->get_one( $existing_sub_payment->id );
+ }
+
+ $payment_id = $frm_payment->create( $payment_values );
+
+ $this->update_next_bill_date( $sub );
+ $this->maybe_cancel_subscription_at_limit( $sub );
+
+ return $frm_payment->get_one( $payment_id );
+ }
+
+ /**
+ * Get the PayPal subscription ID from the resource object.
+ *
+ * @since x.x
+ *
+ * @return string
+ */
+ private function get_subscription_id_from_resource() {
+ if ( ! empty( $this->resource->billing_agreement_id ) ) {
+ return $this->resource->billing_agreement_id;
+ }
+
+ if ( ! empty( $this->resource->supplementary_data->related_ids->subscription_id ) ) {
+ return $this->resource->supplementary_data->related_ids->subscription_id;
+ }
+
+ return '';
+ }
+
+ /**
+ * Get the payment amount from the resource object.
+ *
+ * @since x.x
+ *
+ * @return string
+ */
+ private function get_amount_from_resource() {
+ if ( ! empty( $this->resource->amount->total ) ) {
+ return $this->resource->amount->total;
+ }
+
+ if ( ! empty( $this->resource->amount->value ) ) {
+ return $this->resource->amount->value;
+ }
+
+ return '0.00';
+ }
+
+ /**
+ * Get the refunded amount from the resource object.
+ *
+ * @since x.x
+ *
+ * @return string
+ */
+ private function get_refunded_amount() {
+ if ( ! empty( $this->resource->amount->total ) ) {
+ return $this->resource->amount->total;
+ }
+
+ if ( ! empty( $this->resource->amount->value ) ) {
+ return $this->resource->amount->value;
+ }
+
+ return '0.00';
+ }
+
+ /**
+ * Check if a refund is partial by comparing the refunded amount to the original payment amount.
+ *
+ * @since x.x
+ *
+ * @return bool
+ */
+ private function is_partial_refund() {
+ if ( $this->status !== 'refunded' ) {
+ return false;
+ }
+
+ $receipt_id = $this->get_receipt_id_for_event();
+
+ if ( ! $receipt_id ) {
+ return false;
+ }
+
+ $frm_payment = new FrmTransLitePayment();
+ $original_payment = $frm_payment->get_one_by( $receipt_id, 'receipt_id' );
+ $refunded_amount = (float) $this->get_refunded_amount();
+
+ if ( $original_payment ) {
+ return $refunded_amount < (float) $original_payment->amount;
+ }
+
+ return false;
+ }
+
+ /**
+ * Set the partial refund amount on a payment.
+ *
+ * @since x.x
+ *
+ * @param array $payment_values The payment values to update.
+ *
+ * @return void
+ */
+ private function set_partial_refund( &$payment_values ) {
+ $refunded = (float) $this->get_refunded_amount();
+ $original = (float) $payment_values['amount'];
+ $payment_values['amount'] = number_format( $original - $refunded, 2, '.', '' );
+ }
+
+ /**
+ * Try to find a pending payment stored with the order ID as receipt_id.
+ *
+ * When a capture is pending, the payment record is created with the order
+ * ID as receipt_id. When the capture completes, the webhook provides a
+ * capture ID. This method extracts the order ID from the resource's HATEOAS
+ * 'up' link, looks up the pending payment, and updates its receipt_id to
+ * the capture ID.
+ *
+ * @since x.x
+ *
+ * @param FrmTransLitePayment $frm_payment The payment model instance.
+ * @param string $capture_id The capture ID from the webhook resource.
+ *
+ * @return object|null The payment if found and updated, or null.
+ */
+ private function maybe_resolve_pending_payment( $frm_payment, $capture_id ) {
+ $order_id = $this->get_order_id_from_resource_links();
+
+ if ( ! $order_id ) {
+ return null;
+ }
+
+ $payment = $frm_payment->get_one_by( $order_id, 'receipt_id' );
+
+ if ( ! $payment || 'pending' !== $payment->status ) {
+ return null;
+ }
+
+ $frm_payment->update( $payment->id, array( 'receipt_id' => $capture_id ) );
+ $payment->receipt_id = $capture_id;
+
+ return $payment;
+ }
+
+ /**
+ * Extract the order ID from the webhook resource's HATEOAS 'up' link.
+ *
+ * For PAYMENT.CAPTURE.COMPLETED events, the 'up' link points to the
+ * order: /v2/checkout/orders/{order_id}.
+ *
+ * @since x.x
+ *
+ * @return string The order ID, or empty string if not found.
+ */
+ private function get_order_id_from_resource_links() {
+ if ( empty( $this->resource->links ) || ! is_array( $this->resource->links ) ) {
+ return '';
+ }
+
+ foreach ( $this->resource->links as $link ) {
+ if ( ! isset( $link->rel ) || 'up' !== $link->rel ) {
+ continue;
+ }
+
+ if ( empty( $link->href ) ) {
+ continue;
+ }
+
+ $path = wp_parse_url( $link->href, PHP_URL_PATH );
+
+ if ( ! $path ) {
+ continue;
+ }
+
+ $segments = explode( '/', rtrim( $path, '/' ) );
+ $last_segment = end( $segments );
+
+ if ( $last_segment ) {
+ return $last_segment;
+ }
+ }
+
+ return '';
+ }
+
+ /**
+ * Get the receipt ID to use for looking up a payment record.
+ *
+ * For most events, this is the resource ID. For refund/reversal events,
+ * the resource is the refund object, so we need to extract the original
+ * capture or sale ID from the resource's sale_id property or HATEOAS links.
+ *
+ * @since x.x
+ *
+ * @return string The receipt ID of the original payment.
+ */
+ private function get_receipt_id_for_event() {
+ if ( $this->status !== 'refunded' ) {
+ return $this->resource->id ?? '';
+ }
+
+ $refund_id = $this->resource->id ?? '';
+
+ // For sale refunds, the sale_id property references the original sale.
+ if ( ! empty( $this->resource->sale_id ) ) {
+ return $this->resource->sale_id;
+ }
+
+ // For capture refunds, extract the capture ID from the HATEOAS 'up' link.
+ // The 'up' link points to the original capture: /v2/payments/captures/{capture_id}
+ if ( empty( $this->resource->links ) || ! is_array( $this->resource->links ) ) {
+ return $refund_id;
+ }
+
+ foreach ( $this->resource->links as $link ) {
+ if ( ! isset( $link->rel ) || 'up' !== $link->rel ) {
+ continue;
+ }
+
+ if ( empty( $link->href ) ) {
+ continue;
+ }
+
+ // Extract the ID from the URL path: .../captures/{id} or .../sale/{id}
+ $path = wp_parse_url( $link->href, PHP_URL_PATH );
+
+ if ( ! $path ) {
+ continue;
+ }
+
+ $segments = explode( '/', rtrim( $path, '/' ) );
+ $last_segment = end( $segments );
+
+ if ( $last_segment ) {
+ return $last_segment;
+ }
+ }//end foreach
+
+ // Fallback to the resource ID (the refund ID itself).
+ return $refund_id;
+ }
+
+ /**
+ * Get a subscription record by its PayPal subscription ID.
+ *
+ * @since x.x
+ *
+ * @param string $sub_id The PayPal subscription ID.
+ *
+ * @return object|null
+ */
+ private function get_subscription( $sub_id ) {
+ $frm_sub = new FrmTransLiteSubscription();
+ $sub = $frm_sub->get_one_by( $sub_id, 'sub_id' );
+
+ if ( ! $sub ) {
+ FrmTransLiteLog::log_message( 'PayPal Webhook Message', 'No action taken since there is not a matching subscription for ' . $sub_id );
+ }
+
+ return $sub;
+ }
+
+ /**
+ * Update the next bill date for a subscription using the PayPal API.
+ *
+ * @since x.x
+ *
+ * @param object $sub The local subscription record.
+ *
+ * @return void
+ */
+ private function update_next_bill_date( $sub ) {
+ $subscription = FrmPayPalLiteConnectHelper::get_subscription( $sub->sub_id );
+
+ if ( ! is_object( $subscription ) ) {
+ return;
+ }
+
+ $next_bill_date = '';
+
+ if ( ! empty( $subscription->billing_info->next_billing_time ) ) {
+ $next_bill_date = gmdate( 'Y-m-d', strtotime( $subscription->billing_info->next_billing_time ) );
+ }
+
+ if ( ! $next_bill_date ) {
+ return;
+ }
+
+ $frm_sub = new FrmTransLiteSubscription();
+ $frm_sub->update( $sub->id, array( 'next_bill_date' => $next_bill_date ) );
+ }
+
+ /**
+ * Check if a subscription has reached its payment limit.
+ * If it has, cancel the subscription.
+ *
+ * @since x.x
+ *
+ * @param object $sub The local subscription record.
+ *
+ * @return void
+ */
+ private function maybe_cancel_subscription_at_limit( $sub ) {
+ $action = FrmFormAction::get_single_action_type( $sub->action_id, 'payment' );
+
+ if ( ! is_object( $action ) || empty( $action->post_content['payment_limit'] ) ) {
+ return;
+ }
+
+ $frm_payment = new FrmTransLitePayment();
+ $all_payments = $frm_payment->get_all_by( $sub->id, 'sub_id' );
+ $count = FrmTransLiteAppHelper::count_completed_payments( $all_payments );
+
+ if ( $count < (int) $action->post_content['payment_limit'] ) {
+ return;
+ }
+
+ $cancelled = FrmPayPalLiteConnectHelper::cancel_subscription( $sub->sub_id );
+
+ if ( $cancelled ) {
+ FrmTransLiteSubscriptionsController::change_subscription_status(
+ array(
+ 'status' => 'future_cancel',
+ 'sub' => $sub,
+ )
+ );
+ }
+ }
+
+ /**
+ * Handle a subscription activated or re-activated event.
+ *
+ * @since x.x
+ *
+ * @return void
+ */
+ private function handle_subscription_activated() {
+ $subscription_id = $this->resource->id ?? '';
+
+ if ( ! $subscription_id ) {
+ return;
+ }
+
+ $sub = $this->get_subscription( $subscription_id );
+
+ if ( ! $sub ) {
+ return;
+ }
+
+ if ( $sub->status === 'active' ) {
+ return;
+ }
+
+ FrmTransLiteSubscriptionsController::change_subscription_status(
+ array(
+ 'status' => 'active',
+ 'sub' => $sub,
+ )
+ );
+
+ $this->update_next_bill_date( $sub );
+ }
+
+ /**
+ * Handle a subscription cancelled, expired, or suspended event.
+ *
+ * @since x.x
+ *
+ * @return void
+ */
+ private function handle_subscription_canceled() {
+ $subscription_id = $this->resource->id ?? '';
+
+ if ( ! $subscription_id ) {
+ FrmTransLiteLog::log_message( 'PayPal Webhook Debug', 'BILLING.SUBSCRIPTION.CANCELLED: No subscription ID found in resource' );
+ return;
+ }
+
+ FrmTransLiteLog::log_message( 'PayPal Webhook Debug', 'BILLING.SUBSCRIPTION.CANCELLED: Looking for subscription ID: ' . $subscription_id );
+
+ $sub = $this->get_subscription( $subscription_id );
+
+ if ( ! $sub ) {
+ FrmTransLiteLog::log_message( 'PayPal Webhook Debug', 'BILLING.SUBSCRIPTION.CANCELLED: Subscription not found in database for ID: ' . $subscription_id );
+ return;
+ }
+
+ FrmTransLiteLog::log_message( 'PayPal Webhook Debug', 'BILLING.SUBSCRIPTION.CANCELLED: Found subscription, current status: ' . $sub->status );
+
+ if ( $sub->status === 'canceled' ) {
+ FrmTransLiteLog::log_message( 'PayPal Webhook Debug', 'BILLING.SUBSCRIPTION.CANCELLED: Subscription already canceled, no action needed' );
+ return;
+ }
+
+ FrmTransLiteLog::log_message( 'PayPal Webhook Debug', 'BILLING.SUBSCRIPTION.CANCELLED: Updating subscription status to canceled' );
+
+ FrmTransLiteSubscriptionsController::change_subscription_status(
+ array(
+ 'status' => 'canceled',
+ 'sub' => $sub,
+ )
+ );
+
+ FrmTransLiteLog::log_message( 'PayPal Webhook Debug', 'BILLING.SUBSCRIPTION.CANCELLED: Status update completed' );
+ }
+
+ /**
+ * Handle a subscription payment failed event.
+ * Increments the fail count and cancels after too many failures.
+ *
+ * @since x.x
+ *
+ * @return void
+ */
+ private function handle_subscription_payment_failed() {
+ $subscription_id = $this->resource->id ?? '';
+
+ if ( ! $subscription_id ) {
+ return;
+ }
+
+ $sub = $this->get_subscription( $subscription_id );
+
+ if ( ! $sub ) {
+ return;
+ }
+
+ $frm_sub = new FrmTransLiteSubscription();
+ $fail_count = (int) $sub->fail_count + 1;
+
+ $frm_sub->update(
+ $sub->id,
+ array( 'fail_count' => $fail_count )
+ );
+
+ if ( $fail_count > 3 ) {
+ FrmTransLiteSubscriptionsController::change_subscription_status(
+ array(
+ 'status' => 'canceled',
+ 'sub' => $sub,
+ )
+ );
+ }
+ }
+
+ /**
+ * Handle a subscription updated event.
+ * Syncs subscription data like amount and next bill date.
+ *
+ * @since x.x
+ *
+ * @return void
+ */
+ private function handle_subscription_updated() {
+ $subscription_id = $this->resource->id ?? '';
+
+ if ( ! $subscription_id ) {
+ return;
+ }
+
+ $sub = $this->get_subscription( $subscription_id );
+
+ if ( ! $sub ) {
+ return;
+ }
+
+ $new_values = array();
+
+ // Sync the subscription status.
+ $paypal_status = $this->resource->status ?? '';
+ $status_map = array(
+ 'ACTIVE' => 'active',
+ 'SUSPENDED' => 'canceled',
+ 'CANCELLED' => 'canceled',
+ 'EXPIRED' => 'canceled',
+ );
+
+ if ( $paypal_status && isset( $status_map[ $paypal_status ] ) && $sub->status !== $status_map[ $paypal_status ] ) {
+ FrmTransLiteSubscriptionsController::change_subscription_status(
+ array(
+ 'status' => $status_map[ $paypal_status ],
+ 'sub' => $sub,
+ )
+ );
+ }
+
+ // Sync next billing date and amount from the PayPal API.
+ $subscription = FrmPayPalLiteConnectHelper::get_subscription( $subscription_id );
+
+ if ( ! is_object( $subscription ) ) {
+ // If the subscription doesn't exist in PayPal's API (404 error), it's likely cancelled.
+ // Update the local status to canceled if it's not already.
+ if ( $sub->status !== 'canceled' ) {
+ FrmTransLiteSubscriptionsController::change_subscription_status(
+ array(
+ 'status' => 'canceled',
+ 'sub' => $sub,
+ )
+ );
+ }
+
+ return;
+ }
+
+ if ( ! empty( $subscription->billing_info->next_billing_time ) ) {
+ $new_values['next_bill_date'] = gmdate( 'Y-m-d', strtotime( $subscription->billing_info->next_billing_time ) );
+ }
+
+ if ( ! empty( $subscription->plan->billing_cycles[0]->pricing_scheme->fixed_price->value ) ) {
+ $new_values['amount'] = $subscription->plan->billing_cycles[0]->pricing_scheme->fixed_price->value;
+ }
+
+ if ( ! $new_values ) {
+ return;
+ }
+
+ $frm_sub = new FrmTransLiteSubscription();
+ $frm_sub->update( $sub->id, $new_values );
+ }
+}
diff --git a/paypal/controllers/FrmPayPalLiteFieldsController.php b/paypal/controllers/FrmPayPalLiteFieldsController.php
new file mode 100644
index 0000000000..181541bd43
--- /dev/null
+++ b/paypal/controllers/FrmPayPalLiteFieldsController.php
@@ -0,0 +1,40 @@
+This is a PayPal order field. It is automatically populated when a payment is processed, and is automatically excluded from the form HTML.
';
+ }
+ }
+}
diff --git a/paypal/controllers/FrmPayPalLiteHooksController.php b/paypal/controllers/FrmPayPalLiteHooksController.php
new file mode 100644
index 0000000000..9da4692df1
--- /dev/null
+++ b/paypal/controllers/FrmPayPalLiteHooksController.php
@@ -0,0 +1,101 @@
+ self::class,
+ 'function' => 'route',
+ 'icon' => 'frm_icon_font frm_paypal_icon',
+ );
+
+ return $sections;
+ }
+
+ /**
+ * Handle global settings routing.
+ *
+ * @return void
+ */
+ public static function route() {
+ self::global_settings_form();
+ }
+
+ /**
+ * Print the PayPal section for Global settings.
+ *
+ * @param array $atts
+ *
+ * @return void
+ */
+ public static function global_settings_form( $atts = array() ) {
+ include FrmPayPalLiteAppHelper::plugin_path() . '/views/settings/form.php';
+ }
+
+ /**
+ * Handle processing changes to global PayPal Settings.
+ *
+ * @return void
+ */
+ public static function process_form() {
+ $settings = FrmPayPalLiteAppHelper::get_settings();
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
+ $settings->update( $_POST );
+ $settings->store();
+ }
+}
diff --git a/paypal/css/frontend.css b/paypal/css/frontend.css
new file mode 100644
index 0000000000..702dc51748
--- /dev/null
+++ b/paypal/css/frontend.css
@@ -0,0 +1,171 @@
+.frm-payment-method-selector {
+ display: flex;
+ flex-direction: column;
+ gap: 0;
+ margin-bottom: 16px;
+ border: 1px solid #e0e0e0;
+ border-radius: 8px;
+ overflow: hidden;
+ max-width: 500px;
+}
+
+.frm-payment-method-option {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ padding: 16px;
+ cursor: pointer;
+ border-bottom: 1px solid #e0e0e0;
+ background: #fff;
+ transition: background-color 0.15s ease;
+ position: relative;
+ margin: 0;
+}
+
+.frm-payment-method-option:last-child {
+ border-bottom: none;
+}
+
+.frm-payment-method-option:hover {
+ background-color: #f9f9fb;
+}
+
+.frm-payment-method-active {
+ background-color: #f0f4ff;
+}
+
+.frm-payment-method-active:hover {
+ background-color: #f0f4ff;
+}
+
+.frm-payment-method-option input[type="radio"] {
+ appearance: none !important;
+ -webkit-appearance: none !important;
+ width: 20px !important;
+ height: 20px !important;
+ min-width: 20px !important;
+ min-height: 20px !important;
+ border: 2px solid #c0c0c0 !important;
+ border-radius: 50% !important;
+ flex-shrink: 0;
+ margin: 0 !important;
+ padding: 0 !important;
+ cursor: pointer;
+ transition: border-color 0.15s ease, background 0.15s ease;
+ background: #fff !important;
+ box-shadow: none !important;
+ outline: none !important;
+}
+
+.frm-payment-method-option input[type="radio"]:checked {
+ border-color: #0070ba !important;
+ background: radial-gradient(circle, #0070ba 40%, #fff 40%, #fff 100%) !important;
+}
+
+.frm-payment-method-option input[type="radio"]:focus {
+ outline: 2px solid rgba(0, 112, 186, 0.3) !important;
+ outline-offset: 2px !important;
+}
+
+.frm-payment-method-text {
+ display: flex;
+ flex-direction: column;
+ gap: 2px;
+ flex: 1;
+ min-width: 0;
+}
+
+.frm-payment-method-label-text {
+ font-size: 15px;
+ font-weight: 500;
+ color: #1a1a2e;
+ line-height: 1.3;
+}
+
+.frm-payment-method-desc {
+ font-size: 13px;
+ color: #6b7280;
+ line-height: 1.3;
+}
+
+.frm-payment-method-mark {
+ flex-shrink: 0;
+ display: flex;
+ align-items: center;
+ gap: 4px;
+}
+
+.frm-payment-method-mark img,
+.frm-payment-method-mark svg {
+ height: 24px;
+ width: auto;
+}
+
+.frm-payment-method-google-pay-icon {
+ height: 24px;
+}
+
+.frm-payment-method-google-pay-icon svg {
+ height: 24px;
+ width: auto;
+}
+
+.frm-payment-method-apple-pay-icon {
+ height: 24px;
+}
+
+.frm-payment-method-apple-pay-icon svg {
+ height: 24px;
+ width: auto;
+}
+
+.frm-payment-method-paylater-wrap {
+ border-bottom: 1px solid #e0e0e0;
+ background: #fff;
+ transition: background-color 0.15s ease;
+}
+
+.frm-payment-method-paylater-wrap:hover {
+ background-color: #f9f9fb;
+}
+
+.frm-payment-method-paylater-wrap.frm-payment-method-active-wrap {
+ background-color: #f0f4ff;
+}
+
+.frm-payment-method-paylater-wrap.frm-payment-method-active-wrap:hover {
+ background-color: #f0f4ff;
+}
+
+.frm-payment-method-paylater-wrap.frm-payment-method-active-wrap .frm-payment-method-paylater-msg {
+ background-color: #f0f4ff;
+}
+
+.frm-payment-method-paylater-wrap:last-child {
+ border-bottom: none;
+}
+
+.frm-payment-method-paylater-wrap .frm-payment-method-option {
+ border-bottom: none;
+ background: transparent;
+}
+
+.frm-payment-method-paylater-wrap .frm-payment-method-option:hover {
+ background: transparent;
+}
+
+.frm-payment-method-paylater-msg {
+ padding: 0 16px 12px 48px;
+ font-size: 13px;
+ color: #6b7280;
+ background: transparent;
+}
+
+.frm-payment-method-area {
+ margin-top: 16px;
+}
+
+.frm-payment-method-container {
+ display: none;
+ max-width: 500px;
+}
diff --git a/paypal/helpers/FrmPayPalLiteApiHelper.php b/paypal/helpers/FrmPayPalLiteApiHelper.php
new file mode 100644
index 0000000000..78d75c6f7e
--- /dev/null
+++ b/paypal/helpers/FrmPayPalLiteApiHelper.php
@@ -0,0 +1,35 @@
+settings->test_mode ? 'test' : 'live';
+ }
+
+ /**
+ * Get PayPal button style configuration from form action settings
+ *
+ * @param object $form_action The form action object containing post_content.
+ *
+ * @return array PayPal button style configuration
+ */
+ public static function get_paypal_button_style( $form_action ) {
+ $button_layout = $form_action->post_content['button_layout'] ?? 'vertical';
+ $button_color = $form_action->post_content['button_color'] ?? 'default';
+ $button_label = $form_action->post_content['button_label'] ?? 'paypal';
+ $button_border_radius = $form_action->post_content['button_border_radius'] ?? 10;
+
+ return array(
+ 'style' => array(
+ 'layout' => $button_layout,
+ 'color' => $button_color,
+ 'shape' => 'rect',
+ // Default shape, could be made configurable
+ 'label' => $button_label,
+ 'messaging' => true,
+ // Show messaging under button
+ 'borderRadius' => (int) $button_border_radius,
+ ),
+ );
+ }
+
+ /**
+ * Add education about PayPal fees.
+ *
+ * @param string $medium Medium identifier for the tip (for example 'tip').
+ * @param array|false|string $gateway Gateway or list of gateways this applies to.
+ *
+ * @return void
+ */
+ public static function fee_education( $medium = 'tip', $gateway = false ) {
+ $license_type = FrmAddonsController::license_type();
+
+ if ( in_array( $license_type, array( 'elite', 'business' ), true ) ) {
+ return;
+ }
+
+ $classes = 'frm-light-tip show_paypal';
+
+ if ( $gateway && ! array_intersect( (array) $gateway, array( 'paypal' ) ) ) {
+ $classes .= ' frm_hidden';
+ }
+
+ FrmTipsHelper::show_tip(
+ array(
+ 'link' => array(
+ 'content' => 'paypal-fee',
+ 'medium' => $medium,
+ ),
+ 'tip' => 'Pay as you go pricing: 3% fee per-transaction + PayPal fees.',
+ 'call' => __( 'Upgrade to save on fees.', 'formidable' ),
+ 'class' => $classes,
+ ),
+ 'p'
+ );
+ }
+}
diff --git a/paypal/helpers/FrmPayPalLiteConnectHelper.php b/paypal/helpers/FrmPayPalLiteConnectHelper.php
new file mode 100644
index 0000000000..c005d86b46
--- /dev/null
+++ b/paypal/helpers/FrmPayPalLiteConnectHelper.php
@@ -0,0 +1,1158 @@
+payments_receivable = true;
+ $status->primary_email_confirmed = true;
+ $status->oauth_integrations = true;
+ $status->primary_email = 'test@example.com';
+ */
+
+ if ( ! is_object( $status ) ) {
+ self::render_error( __( 'Unable to retrieve seller status.', 'formidable' ), '', $merchant_id );
+ return false;
+ }
+
+ $email = $status->primary_email ?? '';
+ $paypal_settings_url = self::get_paypal_account_settings_url( $mode );
+
+ if ( empty( $status->primary_email_confirmed ) ) {
+ self::render_error( __( 'Primary email not confirmed.', 'formidable' ), $email, $merchant_id, $paypal_settings_url );
+ return false;
+ }
+
+ if ( ! $status->payments_receivable ) {
+ self::render_error( __( 'Payments are not receivable.', 'formidable' ), $email, $merchant_id, $paypal_settings_url );
+ return false;
+ }
+
+ if ( ! $status->oauth_integrations ) {
+ self::render_error(
+ __( 'OAuth integrations are not enabled. Please finish connecting your PayPal account.', 'formidable' ),
+ $email,
+ $merchant_id,
+ '',
+ $mode
+ );
+ return false;
+ }
+
+ // OAuth integrations are valid. Clear any stored tracking_id from a prior incomplete onboarding.
+ delete_option( self::get_tracking_id_option_name( $mode ) );
+
+ $product = self::check_for_product( $status->products, 'PPCP_CUSTOM' );
+ $only_supports_checkout_button = false;
+
+ if ( ! $product || empty( $product->capabilities ) ) {
+ $product = self::check_for_product( $status->products, 'EXPRESS_CHECKOUT' );
+
+ if ( ! $product ) {
+ self::render_error( __( 'No data was found for expected PayPal product.', 'formidable' ), $email, $merchant_id );
+ return false;
+ }
+
+ if ( 'ACTIVE' !== $product->status ) {
+ self::render_error( __( 'PayPal Checkout is not available.', 'formidable' ), $email, $merchant_id );
+ return false;
+ }
+
+ $only_supports_checkout_button = true;
+ }
+
+ if ( $email ) {
+ update_option( self::get_paypal_seller_status_option_name( $mode ), $status, false );
+ }
+
+ echo '';
+ esc_html_e( 'Your seller status is valid.', 'formidable' );
+ echo '
';
+
+ self::echo_email( $email );
+ self::echo_merchant_id( $merchant_id );
+
+ echo '
';
+ echo '
';
+ echo '
' . esc_html__( 'Enabled scopes:', 'formidable' ) . ' ';
+ echo '
';
+ echo '';
+ /**
+ * @var string[] $scopes
+ */
+ $scopes = $status->oauth_integrations[0]->oauth_third_party[0]->scopes;
+ echo implode( ' ', array_map( 'esc_html', $scopes ) );
+ echo ' ';
+ echo ' ';
+
+ echo '
';
+ echo '
' . esc_html__( 'Enabled capabilities:', 'formidable' ) . ' ';
+ echo '
';
+
+ echo '' . esc_html__( 'PayPal Checkout', 'formidable' ) . ' ';
+
+ $can_process_card_fields = ! $only_supports_checkout_button && in_array( 'CUSTOM_CARD_PROCESSING', $product->capabilities, true );
+
+ if ( $can_process_card_fields ) {
+ echo '' . esc_html__( 'Card Processing', 'formidable' ) . ' ';
+ }
+ echo ' ';
+
+ if ( $can_process_card_fields ) {
+ self::render_acdc_vetting_status( $product );
+ }
+
+ echo '
';
+
+ return true;
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param bool|object $product
+ *
+ * @return void
+ */
+ private static function render_acdc_vetting_status( $product ) {
+ $vetting_status = $product && ! empty( $product->vetting_status ) ? $product->vetting_status : 'NOT_SET';
+
+ echo ' ';
+ echo '' . esc_html__( 'ACDC Application Vetting Status:', 'formidable' ) . ' ';
+ echo ' ';
+ echo esc_html( self::get_acdc_vetting_status_message( $vetting_status ) );
+
+ if ( ! in_array( $vetting_status, array( 'DECLINED', 'DENIED', 'NEED_MORE_DATA' ), true ) ) {
+ return;
+ }
+
+ echo ' ';
+ echo '';
+ esc_html_e( 'Reapply for Advanced Card Processing', 'formidable' );
+ echo ' ';
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param string $vetting_status
+ *
+ * @return string
+ */
+ private static function get_acdc_vetting_status_message( $vetting_status ) {
+ switch ( $vetting_status ) {
+ case 'NOT_SET':
+ return 'Unavailable';
+ case 'APPROVED':
+ case 'SUBSCRIBED':
+ return 'Approved';
+ case 'PENDING':
+ return 'Pending';
+ case 'IN_REVIEW':
+ return 'In Review';
+ case 'DECLINED':
+ return 'Declined';
+ case 'NEED_MORE_DATA':
+ return 'Needs More Data';
+ case 'DENIED':
+ return 'Denied';
+ default:
+ return '';
+ }
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param string $mode
+ *
+ * @return void
+ */
+ public static function render_seller_status_placeholder( $mode ) {
+ include FrmPayPalLiteAppHelper::plugin_path() . '/views/settings/seller-status-placeholder.php';
+ }
+
+ /**
+ * Get the PayPal account settings URL for the given mode.
+ *
+ * @since x.x
+ *
+ * @param string $mode 'test' or 'live'.
+ *
+ * @return string
+ */
+ private static function get_paypal_account_settings_url( $mode ) {
+ if ( 'test' === $mode ) {
+ return 'https://www.sandbox.paypal.com/businessprofile/settings';
+ }
+ return 'https://www.paypal.com/businessprofile/settings';
+ }
+
+ /**
+ * @param array $products
+ * @param string $name
+ *
+ * @return bool|object
+ */
+ private static function check_for_product( $products, $name = 'PPCP_CUSTOM' ) {
+ foreach ( $products as $current_product ) {
+ if ( $name === $current_product->name ) {
+ return $current_product;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @param string $email
+ *
+ * @return void
+ */
+ private static function echo_email( $email ) {
+ if ( ! $email ) {
+ return;
+ }
+
+ echo ' ';
+ echo '' . esc_html__( 'Connected account:', 'formidable' ) . ' ';
+ echo ' ';
+ echo esc_html( $email );
+ }
+
+ /**
+ * @param string $merchant_id
+ *
+ * @return void
+ */
+ private static function echo_merchant_id( $merchant_id ) {
+ echo ' ';
+ echo '' . esc_html__( 'Merchant ID:', 'formidable' ) . ' ';
+ echo ' ';
+
+ if ( $merchant_id ) {
+ echo esc_html( $merchant_id );
+ } else {
+ esc_html_e( 'N/A', 'formidable' );
+ }
+ }
+
+ /**
+ * @param string $message
+ * @param string $email
+ * @param string $merchant_id
+ * @param string $link URL to help the user resolve the issue.
+ * @param string $reconnect_mode When set to 'test' or 'live', renders a Reconnect button
+ * that triggers the OAuth flow again for that mode.
+ *
+ * @return void
+ */
+ private static function render_error( $message, $email = '', $merchant_id = '', $link = '', $reconnect_mode = '' ) {
+ echo '';
+ }
+
+ /**
+ * @param string $mode
+ *
+ * @return void
+ */
+ public static function render_settings_for_mode( $mode ) {
+ $connected = (bool) self::get_merchant_id( $mode );
+ include FrmPayPalLiteAppHelper::plugin_path() . '/views/settings/connect-settings-box.php';
+ }
+
+ /**
+ * @return void
+ */
+ private static function register_settings_scripts() {
+ $script_url = FrmPayPalLiteAppHelper::plugin_url() . '/js/settings.js';
+ $dependencies = array( 'formidable_dom' );
+ wp_register_script( 'formidable_paypal_settings', $script_url, $dependencies, FrmAppHelper::plugin_version(), true );
+ wp_enqueue_script( 'formidable_paypal_settings' );
+ }
+
+ /**
+ * @return false|string
+ */
+ public static function get_oauth_redirect_url() {
+ $mode = FrmAppHelper::get_post_param( 'mode', 'test', 'sanitize_text_field' );
+ $tracking_id = get_option( self::get_tracking_id_option_name( $mode ) );
+
+ if ( self::get_merchant_id( $mode ) && ! $tracking_id ) {
+ // Do not allow for initialize if there is already a configured account id,
+ // unless a tracking_id is stored, which indicates the user is re-onboarding
+ // after an incomplete OAuth integration.
+ return false;
+ }
+
+ $additional_body = array(
+ 'password' => self::generate_client_password( $mode ),
+ 'user_id' => get_current_user_id(),
+ 'frm_paypal_api_mode' => $mode,
+ );
+
+ if ( $tracking_id ) {
+ // Reuse the existing tracking_id so the Connect server can resume onboarding.
+ $additional_body['tracking_id'] = $tracking_id;
+ }
+
+ // Clear the transient so it doesn't fail.
+ delete_option( 'frm_paypal_lite_last_verify_attempt' );
+ $data = self::post_to_connect_server( 'oauth_request', $additional_body );
+
+ if ( is_string( $data ) ) {
+ self::$latest_error_from_paypal_api = $data;
+ FrmTransLiteLog::log_message( 'PayPal OAuth Error', $data );
+ return false;
+ }
+
+ if ( ! empty( $data->password ) ) {
+ update_option( self::get_server_side_token_option_name( $mode ), $data->password, false );
+ }
+
+ if ( ! empty( $data->tracking_id ) ) {
+ update_option( self::get_tracking_id_option_name( $mode ), $data->tracking_id, false );
+ }
+
+ if ( ! is_object( $data ) || empty( $data->redirect_url ) ) {
+ return false;
+ }
+
+ return $data->redirect_url;
+ }
+
+ /**
+ * @param string $action
+ * @param array $additional_body
+ *
+ * @return object|string
+ */
+ private static function post_to_connect_server( $action, $additional_body = array() ) {
+ $body = array(
+ 'frm_paypal_api_action' => $action,
+ 'frm_paypal_api_mode' => FrmPayPalLiteAppHelper::active_mode(),
+ );
+ $body = array_merge( $body, $additional_body );
+ $url = self::get_url_to_connect_server();
+ $headers = self::build_headers_for_post();
+
+ // (Seconds) default timeout is 5. we want a bit more time to work with.
+ $timeout = 45;
+
+ self::try_to_extend_server_timeout( $timeout );
+
+ $args = compact( 'body', 'headers', 'timeout' );
+ $response = wp_remote_post( $url, $args );
+
+ if ( ! self::validate_response( $response ) ) {
+ return 'Response from server is invalid';
+ }
+
+ $body = self::pull_response_body( $response );
+
+ if ( empty( $body->success ) ) {
+ $error_message = 'Response from server was not successful';
+ $debug_id = '';
+
+ // Handle structured error response with message and debug_id
+ $data = $body->data ?? null;
+ if ( is_object( $data ) ) {
+ if ( ! empty( $data->message ) ) {
+ $error_message = $data->message;
+ }
+ if ( ! empty( $data->debug_id ) ) {
+ $debug_id = $data->debug_id;
+ }
+ } elseif ( is_string( $data ) ) {
+ $error_message = $data;
+ }
+
+ // Check for debug_id at top level as well
+ if ( ! $debug_id && ! empty( $body->debug_id ) ) {
+ $debug_id = $body->debug_id;
+ }
+
+ // Parse debug_id from error message if not found
+ if ( ! $debug_id && preg_match( '/\{\{debug_id:([^}]+)\}\}/', $error_message, $matches ) ) {
+ $debug_id = $matches[1];
+ }
+
+ if ( $debug_id ) {
+ $clean_message = trim( preg_replace( '/\{\{debug_id:[^}]+\}\}/', '', $error_message ) );
+ FrmPayPalLiteAppController::log_paypal_debug_id( $debug_id, $clean_message, $action );
+ // Return structured error with debug_id so it can be passed to JavaScript
+ return array(
+ 'message' => $clean_message ?: $error_message,
+ 'debug_id' => $debug_id,
+ );
+ }
+
+ return $error_message;
+ }
+
+ return $body->data ?? array();
+ }
+
+ /**
+ * @param array $response
+ *
+ * @return mixed
+ */
+ private static function pull_response_body( $response ) {
+ $http_response = $response['http_response'];
+ $response_object = $http_response->get_response_object();
+ return json_decode( $response_object->body );
+ }
+
+ /**
+ * @param mixed $response
+ *
+ * @return bool
+ */
+ private static function validate_response( $response ) {
+ return ! is_wp_error( $response ) && is_array( $response ) && isset( $response['http_response'] );
+ }
+
+ /**
+ * @return string
+ */
+ private static function get_url_to_connect_server() {
+ // return 'https://api.strategy11.com/';
+ return 'https://dev-site.local/';
+ // return 'https://qa.formidableforms.com/paypal/';
+ }
+
+ /**
+ * @return array
+ */
+ private static function build_headers_for_post() {
+ $password = self::maybe_get_pro_license();
+
+ if ( false === $password ) {
+ $password = 'lite_' . self::get_uuid();
+ }
+
+ $site_url = home_url();
+ $site_url = self::maybe_fix_wpml_url( $site_url );
+ // Remove protocol from url (our url cannot include the colon).
+ $site_url = preg_replace( '#^https?://#', '', $site_url );
+ // Remove port from url (mostly helpful in development).
+ $site_url = preg_replace( '/:[0-9]+/', '', $site_url );
+ $site_url = self::strip_lang_from_url( $site_url );
+
+ // $password is either a Pro license or a uuid (See FrmUsage::uuid).
+ return array(
+ 'Authorization' => 'Basic ' . base64_encode( $site_url . ':' . $password ),
+ );
+ }
+
+ /**
+ * Get a unique ID to use for connecting Lite users.
+ *
+ * @return string
+ */
+ private static function get_uuid() {
+ $usage = new FrmUsage();
+ return $usage->uuid();
+ }
+
+ /**
+ * WPML might add a language to the url. Don't send that to the server.
+ *
+ * @param string $url URL to strip language from.
+ *
+ * @return string
+ */
+ private static function strip_lang_from_url( $url ) {
+ $split_on_language = explode( '/?lang=', $url );
+ return 2 === count( $split_on_language ) ? $split_on_language[0] : $url;
+ }
+
+ /**
+ * WPML alters the output of home_url.
+ * If it is active, use the WPML "absolute home" URL which is not modified.
+ *
+ * @param string $url URL to maybe fix.
+ *
+ * @return string
+ */
+ private static function maybe_fix_wpml_url( $url ) {
+ if ( defined( 'ICL_SITEPRESS_VERSION' ) && ! ICL_PLUGIN_INACTIVE && class_exists( 'SitePress' ) ) {
+ global $wpml_url_converter;
+ $url = $wpml_url_converter->get_abs_home();
+ }
+ return $url;
+ }
+
+ /**
+ * Get a Pro license when Pro is active.
+ * Otherwise we'll use a uuid to support Lite.
+ *
+ * @return false|string
+ */
+ private static function maybe_get_pro_license() {
+ if ( FrmAppHelper::pro_is_installed() ) {
+ $pro_license = FrmAddonsController::get_pro_license();
+
+ if ( $pro_license ) {
+ $password = $pro_license;
+ }
+ }
+
+ return ! empty( $password ) ? $password : false;
+ }
+
+ /**
+ * Try to make sure the server time limit exceeds the request time limit.
+ *
+ * @param int $timeout seconds.
+ *
+ * @return void
+ */
+ private static function try_to_extend_server_timeout( $timeout ) {
+ if ( function_exists( 'set_time_limit' ) ) {
+ set_time_limit( $timeout + 10 );
+ }
+ }
+
+ /**
+ * @param string $mode either 'auto', 'live', or 'test'.
+ *
+ * @return string
+ */
+ private static function get_server_side_token_option_name( $mode = 'auto' ) {
+ return self::get_paypal_connect_option_name( 'server_password', $mode );
+ }
+
+ /**
+ * @param string $mode either 'auto', 'live', or 'test'.
+ *
+ * @return string
+ */
+ private static function get_tracking_id_option_name( $mode = 'auto' ) {
+ return self::get_paypal_connect_option_name( 'tracking_id', $mode );
+ }
+
+ /**
+ * Generate a new client password for authenticating with Connect Service and save it locally as an option.
+ *
+ * @param string $mode 'live' or 'test'.
+ *
+ * @return string the client password.
+ */
+ private static function generate_client_password( $mode ) {
+ $client_password = wp_generate_password();
+ update_option( self::get_client_side_token_option_name( $mode ), $client_password, false );
+ return $client_password;
+ }
+
+ /**
+ * @param string $mode either 'auto', 'live', or 'test'.
+ *
+ * @return string
+ */
+ private static function get_client_side_token_option_name( $mode = 'auto' ) {
+ return self::get_paypal_connect_option_name( 'client_password', $mode );
+ }
+
+ /**
+ * @param string $mode
+ *
+ * @return string
+ */
+ private static function get_paypal_seller_status_option_name( $mode = 'auto' ) {
+ return self::get_paypal_connect_option_name( 'seller_status', $mode );
+ }
+
+ /**
+ * @return string
+ */
+ private static function get_mode_value() {
+ $settings = FrmPayPalLiteAppHelper::get_settings();
+ return $settings->settings->test_mode ? 'test' : 'live';
+ }
+
+ /**
+ * @param string $mode either 'auto', 'live', or 'test'.
+ *
+ * @return bool|string
+ */
+ public static function get_merchant_id( $mode = 'auto' ) {
+ if ( 'auto' === $mode ) {
+ $mode = self::get_mode_value();
+ }
+ return get_option( self::get_merchant_id_option_name( $mode ) );
+ }
+
+ /**
+ * @param string $mode either 'auto', 'live', or 'test'.
+ *
+ * @return string
+ */
+ private static function get_merchant_id_option_name( $mode = 'auto' ) {
+ return self::get_paypal_connect_option_name( 'merchant_id', $mode );
+ }
+
+ /**
+ * @param string $mode either 'auto', 'live', or 'test'.
+ *
+ * @return string
+ */
+ private static function get_merchant_currency_option_name( $mode = 'auto' ) {
+ return self::get_paypal_connect_option_name( 'merchant_currency', $mode );
+ }
+
+ /**
+ * @param string $key 'merchant_id', 'client_password', 'server_password'.
+ * @param string $mode either 'auto', 'live', or 'test'.
+ *
+ * @return string
+ */
+ private static function get_paypal_connect_option_name( $key, $mode = 'auto' ) {
+ return 'frm_paypal_connect_' . $key . self::get_active_mode_option_name_suffix( $mode );
+ }
+
+ /**
+ * @param string $mode either 'auto', 'live', or 'test'.
+ *
+ * @return string either _test or _live.
+ */
+ private static function get_active_mode_option_name_suffix( $mode = 'auto' ) {
+ if ( 'auto' !== $mode ) {
+ return '_' . $mode;
+ }
+ return '_' . FrmPayPalLiteAppHelper::active_mode();
+ }
+
+ public static function check_for_redirects() {
+ if ( self::user_landed_on_the_oauth_return_url() ) {
+ self::redirect_oauth();
+ }
+ }
+
+ /**
+ * @return bool
+ */
+ private static function user_landed_on_the_oauth_return_url() {
+ return isset( $_GET['frm_paypal_api_return_oauth'] );
+ }
+
+ private static function redirect_oauth() {
+ $connected = self::check_server_for_oauth_merchant_id();
+ wp_safe_redirect( self::get_url_for_paypal_settings( $connected ) );
+ exit;
+ }
+
+ /**
+ * @param bool $connected
+ *
+ * @return string
+ */
+ private static function get_url_for_paypal_settings( $connected ) {
+ return admin_url( 'admin.php?page=formidable-settings&t=paypal_settings&connected=' . intval( $connected ) );
+ }
+
+ /**
+ * @return bool
+ */
+ private static function check_server_for_oauth_merchant_id() {
+ $mode = 'test' === FrmAppHelper::simple_get( 'mode' ) ? 'test' : 'live';
+ $tracking_id = get_option( self::get_tracking_id_option_name( $mode ) );
+ $is_reconnect = (bool) $tracking_id;
+
+ if ( self::get_merchant_id( $mode ) && ! $is_reconnect ) {
+ // Do not allow for initialize if there is already a configured merchant id,
+ // unless a tracking_id is stored, which indicates the user is re-onboarding
+ // after an incomplete OAuth integration and the new credentials must be synced.
+ return false;
+ }
+
+ $body = array(
+ 'server_password' => get_option( self::get_server_side_token_option_name( $mode ) ),
+ 'client_password' => get_option( self::get_client_side_token_option_name( $mode ) ),
+ 'frm_paypal_api_mode' => $mode,
+ );
+
+ if ( $tracking_id ) {
+ $body['tracking_id'] = $tracking_id;
+ }
+
+ $data = self::post_to_connect_server( 'oauth_merchant_status', $body );
+
+ if ( is_object( $data ) && ! empty( $data->merchant_id ) ) {
+ update_option( self::get_merchant_id_option_name( $mode ), $data->merchant_id, false );
+
+ // Invalidate the cached seller status so the next render fetches fresh data
+ // with the newly synced credentials.
+ delete_option( self::get_paypal_seller_status_option_name( $mode ) );
+
+ FrmTransLiteAppController::install();
+
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * @param string $action
+ * @param array $additional_body
+ *
+ * @return false|object
+ */
+ private static function post_with_authenticated_body( $action, $additional_body = array() ) {
+ $body = array_merge( self::get_standard_authenticated_body(), $additional_body );
+ $response = self::post_to_connect_server( $action, $body );
+
+ if ( is_object( $response ) ) {
+ return $response;
+ }
+
+ if ( is_array( $response ) ) {
+ // Arrays with error data (e.g., from mock responses) should be preserved
+ // Only convert empty arrays to empty objects
+ if ( ! empty( $response ) ) {
+ // Check if this is an error response with message and debug_id
+ if ( isset( $response['message'] ) && ( isset( $response['debug_id'] ) || isset( $response['debugId'] ) ) ) {
+ self::$latest_error_from_paypal_api = $response['message'];
+ // PayPal API returns debug_id (snake_case) in some cases and debugId (camelCase) in others
+ self::$latest_debug_id_from_paypal_api = $response['debug_id'] ?? $response['debugId'] ?? '';
+ if ( class_exists( 'FrmTransLiteLog' ) ) {
+ FrmTransLiteLog::log_message( 'PayPal API Error', $response['message'] );
+ }
+ // Return the array with error details so the caller can extract them
+ return (object) $response;
+ }
+ // Convert array to object for consistency
+ return (object) $response;
+ }
+ return new stdClass();
+ }
+
+ if ( is_string( $response ) ) {
+ self::$latest_error_from_paypal_api = $response;
+ // Extract debug_id from formatted error string if present
+ if ( preg_match( '/{{debug_id:([^}]+)}}/', $response, $matches ) ) {
+ self::$latest_debug_id_from_paypal_api = $matches[1];
+ // Remove the debug_id token from the error message for display
+ self::$latest_error_from_paypal_api = preg_replace( '/\s*{{debug_id:[^}]+}}/', '', $response );
+ }
+ FrmTransLiteLog::log_message( 'PayPal API Error', $response );
+ } else {
+ self::$latest_error_from_paypal_api = '';
+ }
+
+ return false;
+ }
+
+ /**
+ * @return array
+ */
+ private static function get_standard_authenticated_body() {
+ $mode = self::get_mode_value_from_post();
+ return array(
+ 'merchant_id' => get_option( self::get_merchant_id_option_name( $mode ) ),
+ 'server_password' => get_option( self::get_server_side_token_option_name( $mode ) ),
+ 'client_password' => get_option( self::get_client_side_token_option_name( $mode ) ),
+ );
+ }
+
+ /**
+ * Check $_POST for live or test mode value as it can be updated in real time from PayPal Settings and can be configured before the update is saved.
+ *
+ * @return string 'test' or 'live'
+ */
+ private static function get_mode_value_from_post() {
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
+ if ( empty( $_POST ) || ! array_key_exists( 'testMode', $_POST ) ) {
+ return FrmPayPalLiteAppHelper::active_mode();
+ }
+
+ $test_mode = FrmAppHelper::get_param( 'testMode', '', 'post', 'absint' );
+ return $test_mode ? 'test' : 'live';
+ }
+
+ /**
+ * @return string|null
+ */
+ public static function get_latest_error_from_paypal_api() {
+ return self::$latest_error_from_paypal_api;
+ }
+
+ /**
+ * @return string
+ */
+ public static function get_latest_debug_id_from_paypal_api() {
+ return self::$latest_debug_id_from_paypal_api;
+ }
+
+ /**
+ * @return array
+ */
+ public static function get_unprocessed_event_ids() {
+ $data = self::post_with_authenticated_body( 'get_unprocessed_event_ids' );
+
+ if ( false === $data || empty( $data->event_ids ) ) {
+ return array();
+ }
+
+ /**
+ * @var array $data->event_ids
+ */
+ return $data->event_ids;
+ }
+
+ /**
+ * @param string $event_id
+ *
+ * @return false|object
+ */
+ public static function get_event( $event_id ) {
+ $event = wp_cache_get( $event_id, 'frm_paypal' );
+
+ if ( is_object( $event ) ) {
+ return $event;
+ }
+
+ $event = self::post_with_authenticated_body( 'get_event', compact( 'event_id' ) );
+
+ if ( false === $event || empty( $event->event ) ) {
+ return false;
+ }
+
+ wp_cache_set( $event_id, $event->event, 'frm_paypal' );
+
+ return $event->event;
+ }
+
+ /**
+ * @param string $event_id
+ *
+ * @return false|object
+ */
+ public static function process_event( $event_id ) {
+ return self::post_with_authenticated_body( 'process_event', compact( 'event_id' ) );
+ }
+
+ public static function handle_disconnect() {
+ self::disconnect();
+ self::reset_paypal_api_integration();
+ wp_send_json_success();
+ }
+
+ /**
+ * @return false|object
+ */
+ private static function disconnect() {
+ $additional_body = array(
+ 'frm_paypal_api_mode' => self::get_mode_value_from_post(),
+ );
+ return self::post_with_authenticated_body( 'disconnect', $additional_body );
+ }
+
+ /**
+ * Delete every PayPal API option, calling when disconnecting.
+ *
+ * @return void
+ */
+ public static function reset_paypal_api_integration() {
+ $mode = self::get_mode_value_from_post();
+ delete_option( self::get_merchant_id_option_name( $mode ) );
+ delete_option( self::get_server_side_token_option_name( $mode ) );
+ delete_option( self::get_client_side_token_option_name( $mode ) );
+ delete_option( self::get_merchant_currency_option_name( $mode ) );
+ delete_option( self::get_paypal_seller_status_option_name( $mode ) );
+ delete_option( self::get_tracking_id_option_name( $mode ) );
+ }
+
+ /**
+ * @since x.x
+ *
+ * @return bool
+ */
+ public static function at_least_one_mode_is_setup() {
+ return self::get_merchant_id( 'test' ) || self::get_merchant_id( 'live' );
+ }
+
+ /**
+ * Verify a site identifier is a match.
+ */
+ public static function verify() {
+ $option_name = 'frm_paypal_lite_last_verify_attempt';
+ $last_request = get_option( $option_name );
+
+ if ( $last_request && $last_request > strtotime( '-1 day' ) ) {
+ wp_send_json_error( 'Too many requests' );
+ }
+
+ $site_identifier = FrmAppHelper::get_post_param( 'site_identifier' );
+ $usage = new FrmUsage();
+
+ update_option( $option_name, time() );
+
+ if ( $site_identifier === $usage->uuid() ) {
+ wp_send_json_success();
+ }
+
+ wp_send_json_error();
+ }
+
+ /**
+ * Create a PayPal order.
+ *
+ * @param string $amount
+ * @param string $currency
+ * @param string $payment_source Valid values are 'card', 'paypal'.
+ * @param array $payer
+ * @param string $shipping_preference
+ * @param array $pricing_data Optional. Array of products with prices and quantities.
+ * @param array $shipping Optional. Shipping name and address data.
+ *
+ * @return false|object
+ */
+ public static function create_order( $amount, $currency, $payment_source, $payer, $shipping_preference, $pricing_data = array(), $shipping = array() ) {
+ $brand_name = self::get_brand_name();
+
+ // Log pricing data for debugging if FrmLog is available
+ if ( class_exists( 'FrmLog' ) && $pricing_data ) {
+ $log = new FrmLog();
+ $log->add(
+ array(
+ 'title' => 'PayPal Order: Pricing Data',
+ 'content' => print_r( $pricing_data, true ),
+ )
+ );
+ }
+
+ return self::post_with_authenticated_body( 'create_order', compact( 'amount', 'currency', 'payment_source', 'brand_name', 'payer', 'shipping_preference', 'pricing_data', 'shipping' ) );
+ }
+
+ /**
+ * @since x.x
+ *
+ * @return string
+ */
+ private static function get_brand_name() {
+ $brand_name = get_bloginfo( 'name' );
+
+ /**
+ * Allow people to modify the brand name used in the PayPal order.
+ *
+ * @since x.x
+ *
+ * @param string $brand_name
+ *
+ * @return string
+ */
+ $filtered_brand_name = apply_filters( 'frm_paypal_brand_name', $brand_name );
+
+ if ( is_string( $filtered_brand_name ) ) {
+ return $filtered_brand_name;
+ }
+
+ _doing_it_wrong( 'FrmPayPalLiteConnectHelper::get_brand_name', 'The frm_paypal_brand_name filter must return a string.', 'x.x' );
+
+ return $brand_name;
+ }
+
+ /**
+ * @param string $order_id
+ *
+ * @return false|object
+ */
+ public static function capture_order( $order_id ) {
+ return self::post_with_authenticated_body( 'capture_order', compact( 'order_id' ) );
+ }
+
+ /**
+ * @param string $capture_id
+ *
+ * @return false|object
+ */
+ public static function refund_payment( $capture_id ) {
+ return self::post_with_authenticated_body( 'refund_capture', array( 'capture_id' => $capture_id ) );
+ }
+
+ /**
+ * @param string $subscription_id
+ *
+ * @return false|object
+ */
+ public static function cancel_subscription( $subscription_id ) {
+ return self::post_with_authenticated_body( 'cancel_subscription', compact( 'subscription_id' ) );
+ }
+
+ /**
+ * @param array $data Subscription data.
+ *
+ * @return false|object
+ */
+ public static function create_subscription( $data ) {
+ $data['brand_name'] = self::get_brand_name();
+ return self::post_with_authenticated_body( 'create_subscription', compact( 'data' ) );
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param array $data Setup token data including payment_source.
+ *
+ * @return false|object
+ */
+ public static function create_vault_setup_token( $data = array() ) {
+ return self::post_with_authenticated_body( 'create_vault_setup_token', compact( 'data' ) );
+ }
+
+ /**
+ * @return false|object
+ */
+ public static function get_seller_status() {
+ $mode = self::get_mode_value_from_post();
+ $status = get_option( self::get_paypal_seller_status_option_name( $mode ) );
+
+ if ( is_object( $status ) ) {
+ return $status;
+ }
+
+ return self::post_with_authenticated_body( 'get_seller_status' );
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param string $capture_id
+ *
+ * @return false|object
+ */
+ public static function get_capture( $capture_id ) {
+ return self::post_with_authenticated_body( 'get_capture', compact( 'capture_id' ) );
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param string $order_id
+ *
+ * @return false|object
+ */
+ public static function get_order( $order_id ) {
+ return self::post_with_authenticated_body( 'get_order', compact( 'order_id' ) );
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param string $subscription_id The PayPal subscription ID.
+ *
+ * @return false|object
+ */
+ public static function get_subscription( $subscription_id ) {
+ return self::post_with_authenticated_body( 'get_subscription', compact( 'subscription_id' ) );
+ }
+
+ /**
+ * @since x.x
+ *
+ * @param string $mode
+ *
+ * @return string
+ */
+ public static function get_bn_code() {
+ return 'Strategy11LLCPPCP_SP';
+ }
+}
diff --git a/paypal/images/amex.svg b/paypal/images/amex.svg
new file mode 100644
index 0000000000..22dafe4e86
--- /dev/null
+++ b/paypal/images/amex.svg
@@ -0,0 +1 @@
+
diff --git a/paypal/images/apple-pay.svg b/paypal/images/apple-pay.svg
new file mode 100644
index 0000000000..5733474aa1
--- /dev/null
+++ b/paypal/images/apple-pay.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/paypal/images/discover.svg b/paypal/images/discover.svg
new file mode 100644
index 0000000000..e6ee965659
--- /dev/null
+++ b/paypal/images/discover.svg
@@ -0,0 +1 @@
+
diff --git a/paypal/images/gpay.svg b/paypal/images/gpay.svg
new file mode 100644
index 0000000000..238108a6a4
--- /dev/null
+++ b/paypal/images/gpay.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/paypal/images/mastercard.svg b/paypal/images/mastercard.svg
new file mode 100644
index 0000000000..73b6a4d6ba
--- /dev/null
+++ b/paypal/images/mastercard.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/paypal/images/visa.svg b/paypal/images/visa.svg
new file mode 100644
index 0000000000..c2e790a0d9
--- /dev/null
+++ b/paypal/images/visa.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/paypal/js/action.js b/paypal/js/action.js
new file mode 100644
index 0000000000..0c40d6f40f
--- /dev/null
+++ b/paypal/js/action.js
@@ -0,0 +1,22 @@
+( function() {
+ const actions = document.getElementById( 'frm_notification_settings' );
+ if ( ! actions ) {
+ return;
+ }
+
+ jQuery( actions ).on( 'change', 'select[name*="[post_content][layout]"]', onLayoutChange );
+
+ function onLayoutChange() {
+ const settings = this.closest( '.frm_form_action_settings' );
+ if ( ! settings ) {
+ return;
+ }
+
+ const buttonSettings = settings.querySelector( '.frm_paypal_button_settings' );
+ if ( ! buttonSettings ) {
+ return;
+ }
+
+ buttonSettings.classList.toggle( 'frm_hidden', 'card_only' === this.value );
+ }
+}() );
diff --git a/paypal/js/frontend.js b/paypal/js/frontend.js
new file mode 100644
index 0000000000..2c19026a46
--- /dev/null
+++ b/paypal/js/frontend.js
@@ -0,0 +1,1955 @@
+/**
+ * PayPal Payment Integration - Radio-Based Payment Method Selector.
+ *
+ * Architecture:
+ * - A radio group lets the user pick their payment method (Card, PayPal, Venmo, etc.).
+ * - Only the selected method's UI is visible at a time.
+ * - Card + PayPal are pre-rendered on init (hybrid approach).
+ * - Other methods (Venmo, Google Pay, etc.) are lazy-rendered on first selection, then cached.
+ * - When Card is selected: card fields + native submit button are shown.
+ * - When any button method is selected: the submit button is hidden and only that button is shown.
+ */
+( function() {
+ if ( ! window.frmPayPalVars ) {
+ return;
+ }
+
+ // ---- State ----
+
+ let thisForm = null;
+ let running = 0;
+ let cardFieldsInstance = null;
+ let cardFieldsValid = false;
+ let submitEvent = null;
+ let isRecurring = false;
+
+ /**
+ * Registry of available payment methods.
+ * Populated during init based on SDK eligibility checks.
+ *
+ * @type {Map}
+ */
+ const paymentMethods = new Map();
+
+ /** Currently selected payment method key. */
+ let selectedMethod = null;
+
+ /** Cached Google Pay config from paypal.Googlepay().config(). */
+ let googlePayConfig = null;
+
+ /** Cached Apple Pay config from paypal.Applepay().config(). */
+ let applePayConfig = null;
+
+ // ---- Constants ----
+
+ /**
+ * Human-readable labels for funding sources.
+ */
+ const METHOD_LABELS = {
+ card: 'Credit Card',
+ paypal: 'PayPal',
+ venmo: 'Venmo',
+ paylater: 'Pay Later',
+ google_pay: 'Google Pay',
+ apple_pay: 'Apple Pay',
+ bancontact: 'Bancontact',
+ blik: 'BLIK',
+ eps: 'EPS',
+ p24: 'Przelewy24',
+ trustly: 'Trustly',
+ satispay: 'Satispay',
+ sepa: 'SEPA',
+ mybank: 'MyBank',
+ ideal: 'iDEAL',
+ };
+
+ /**
+ * Maps internal method keys to PayPal FUNDING constants for the Marks API.
+ * Card and Google Pay use local images instead of PayPal Marks.
+ */
+ const METHOD_FUNDING_SOURCE = {
+ paypal: 'paypal',
+ venmo: 'venmo',
+ paylater: 'paylater',
+ bancontact: 'bancontact',
+ blik: 'blik',
+ eps: 'eps',
+ p24: 'p24',
+ trustly: 'trustly',
+ satispay: 'satispay',
+ sepa: 'sepa',
+ mybank: 'mybank',
+ ideal: 'ideal',
+ };
+
+ /**
+ * Methods that should be pre-rendered on init (hybrid approach).
+ * Everything else is lazy-rendered on first selection.
+ */
+ const PRE_RENDER_METHODS = new Set( [ 'card', 'paypal' ] );
+
+ /**
+ * Base request object shared by isReadyToPay and PaymentDataRequest.
+ */
+ const googlePayBaseRequest = {
+ apiVersion: 2,
+ apiVersionMinor: 0
+ };
+
+ // ---- Initialization ----
+
+ /**
+ * Main entry point.
+ */
+ async function paypalInit() {
+ const cardElement = document.querySelector( '.frm-card-element' );
+ if ( ! cardElement ) {
+ return;
+ }
+
+ thisForm = cardElement.closest( 'form' );
+ if ( ! thisForm ) {
+ return;
+ }
+
+ const settings = getPayPalSettings()[ 0 ];
+ if ( ! settings ) {
+ return;
+ }
+
+ isRecurring = 'single' !== settings.one;
+ const { layout } = settings;
+ const cardFieldsAreSupported = layout !== 'checkout_only' && 'function' === typeof window.paypal.CardFields;
+ const buttonsAreEnabled = layout !== 'card_only' && 'function' === typeof window.paypal.Buttons;
+
+ // Clear the card element. We rebuild it entirely.
+ cardElement.innerHTML = '';
+
+ // 1. Discover eligible methods and register them.
+ await discoverPaymentMethods( {
+ cardFieldsAreSupported,
+ buttonsAreEnabled,
+ isRecurring
+ } );
+
+ if ( paymentMethods.size === 0 ) {
+ displayPaymentFailure( 'No payment methods available.' );
+ return;
+ }
+
+ // 2. Build the radio selector UI, then render marks after it's in the DOM.
+ const radioGroup = buildRadioGroup();
+ cardElement.append( radioGroup );
+ renderMarks();
+
+ // 3. Build a container area for each method's UI (buttons / card fields).
+ const methodArea = document.createElement( 'div' );
+ methodArea.classList.add( 'frm-payment-method-area' );
+ cardElement.append( methodArea );
+
+ for ( const [ key, method ] of paymentMethods ) {
+ const container = document.createElement( 'div' );
+ container.id = `frm-payment-method-${ key }`;
+ container.classList.add( 'frm-payment-method-container' );
+ methodArea.append( container );
+ method.containerEl = container;
+ }
+
+ // 4. Pre-render Card + PayPal (hybrid approach).
+ for ( const key of PRE_RENDER_METHODS ) {
+ const method = paymentMethods.get( key );
+ if ( method?.eligible ) {
+ try {
+ await method.render();
+ method.rendered = true;
+ } catch ( err ) {
+ console.error( `Failed to pre-render payment method: ${ key }`, err );
+ }
+ }
+ }
+
+ // 5. Auto-select the first eligible method.
+ const firstKey = paymentMethods.keys().next().value;
+ await selectPaymentMethod( firstKey );
+
+ // 6. Attach form submit handler (for card method).
+ thisForm.addEventListener( 'submit', handleFormSubmission );
+
+ // 7. Pay Later messages.
+ if ( paymentMethods.has( 'paylater' ) ) {
+ renderMessages();
+ jQuery( document ).on( 'frmFieldChanged', priceChanged );
+ checkPriceFieldsOnLoad();
+ }
+ }
+
+ // ---- Discovery ----
+
+ /**
+ * Discover which payment methods are eligible and register them.
+ *
+ * @param {Object} opts Config flags.
+ */
+ async function discoverPaymentMethods( opts ) {
+ const { cardFieldsAreSupported, buttonsAreEnabled, isRecurring } = opts;
+
+ // --- Card Fields ---
+ if ( cardFieldsAreSupported ) {
+ const cardFields = createCardFieldsSDKInstance();
+ if ( cardFields?.isEligible() ) {
+ cardFieldsInstance = cardFields;
+ registerMethod( 'card', {
+ eligible: true,
+ render: renderCardFields
+ } );
+ }
+ }
+
+ // --- PayPal button ---
+ if ( buttonsAreEnabled ) {
+ const paypalBtn = createPayPalButton( paypal.FUNDING.PAYPAL, isRecurring );
+ if ( paypalBtn.isEligible() ) {
+ registerMethod( 'paypal', {
+ eligible: true,
+ buttonInstance: paypalBtn,
+ render() {
+ this.buttonInstance.render( `#${ this.containerEl.id }` );
+ }
+ } );
+ }
+ }
+
+ // --- Alternative funding sources ---
+ if ( buttonsAreEnabled ) {
+ const fundingSources = [
+ { key: 'venmo', funding: paypal.FUNDING.VENMO },
+ { key: 'paylater', funding: paypal.FUNDING.PAYLATER },
+ { key: 'bancontact', funding: paypal.FUNDING.BANCONTACT },
+ { key: 'blik', funding: paypal.FUNDING.BLIK },
+ { key: 'eps', funding: paypal.FUNDING.EPS },
+ { key: 'p24', funding: paypal.FUNDING.P24 },
+ { key: 'trustly', funding: paypal.FUNDING.TRUSTLY },
+ { key: 'satispay', funding: paypal.FUNDING.SATISPAY },
+ { key: 'sepa', funding: paypal.FUNDING.SEPA },
+ { key: 'mybank', funding: paypal.FUNDING.MYBANK },
+ { key: 'ideal', funding: paypal.FUNDING.IDEAL },
+ ];
+
+ for ( const { key, funding } of fundingSources ) {
+ const btn = createPayPalButton( funding, isRecurring );
+ if ( btn.isEligible() ) {
+ registerMethod( key, {
+ eligible: true,
+ buttonInstance: btn,
+ render() {
+ this.buttonInstance.render( `#${ this.containerEl.id }` );
+ }
+ } );
+ }
+ }
+ }
+
+ // --- Google Pay ---
+ if ( buttonsAreEnabled && ! isRecurring ) {
+ const googlePayEligible = await checkGooglePayEligibility();
+ if ( googlePayEligible ) {
+ registerMethod( 'google_pay', {
+ eligible: true,
+ render: renderGooglePayButton
+ } );
+ }
+ }
+
+ // --- Apple Pay ---
+ if ( buttonsAreEnabled && ! isRecurring ) {
+ const applePayEligibilityResult = await checkApplePayEligibility();
+ if ( applePayEligibilityResult === '' ) {
+ registerMethod( 'apple_pay', {
+ eligible: true,
+ render: renderApplePayButton
+ } );
+ }
+ }
+ }
+
+ /**
+ * Register a payment method in the registry.
+ *
+ * @param {string} key Unique identifier.
+ * @param {Object} config Method configuration.
+ */
+ function registerMethod( key, config ) {
+ paymentMethods.set( key, {
+ key,
+ label: METHOD_LABELS[ key ] || key,
+ eligible: config.eligible || false,
+ rendered: false,
+ containerEl: null,
+ buttonInstance: config.buttonInstance || null,
+ render: config.render || ( () => {} ),
+ } );
+ }
+
+ // ---- Radio Group UI ----
+
+ /**
+ * Build the radio button group for payment method selection.
+ * Each option is a card-like row with a radio, label, description, and PayPal Mark logo.
+ *
+ * @return {HTMLElement} The radio group container.
+ */
+ function buildRadioGroup() {
+ const group = document.createElement( 'div' );
+ group.classList.add( 'frm-payment-method-selector' );
+ group.setAttribute( 'role', 'radiogroup' );
+ group.setAttribute( 'aria-label', 'Select payment method' );
+
+ for ( const [ key, method ] of paymentMethods ) {
+ const label = document.createElement( 'label' );
+ label.classList.add( 'frm-payment-method-option' );
+ label.setAttribute( 'for', `frm-payment-method-radio-${ key }` );
+
+ const radio = document.createElement( 'input' );
+ radio.type = 'radio';
+ radio.name = 'frm_payment_method';
+ radio.id = `frm-payment-method-radio-${ key }`;
+ radio.value = key;
+
+ radio.addEventListener( 'change', () => selectPaymentMethod( key ) );
+
+ // Text column: label + description.
+ const textWrap = document.createElement( 'div' );
+ textWrap.classList.add( 'frm-payment-method-text' );
+
+ const labelText = document.createElement( 'span' );
+ labelText.classList.add( 'frm-payment-method-label-text' );
+ labelText.textContent = method.label;
+ textWrap.append( labelText );
+
+ // Mark column: will be populated by renderMarks() after the group is in the DOM.
+ const markWrap = document.createElement( 'div' );
+ markWrap.classList.add( 'frm-payment-method-mark' );
+ markWrap.id = `frm-payment-mark-${ key }`;
+
+ const baseUrl = frmPayPalVars.imagesUrl || '';
+
+ if ( key === 'card' ) {
+ const cardBrands = [
+ { file: 'visa.svg', alt: 'Visa' },
+ { file: 'mastercard.svg', alt: 'Mastercard' },
+ { file: 'amex.svg', alt: 'American Express' },
+ { file: 'discover.svg', alt: 'Discover' },
+ ];
+ cardBrands.forEach( function( brand ) {
+ const img = document.createElement( 'img' );
+ img.src = baseUrl + brand.file;
+ img.alt = brand.alt;
+ img.height = 24;
+ markWrap.append( img );
+ } );
+ } else if ( key === 'google_pay' ) {
+ markWrap.classList.add( 'frm-payment-method-google-pay-icon' );
+ const img = document.createElement( 'img' );
+ img.src = `${ baseUrl }gpay.svg`;
+ img.alt = 'Google Pay';
+ img.height = 24;
+ markWrap.append( img );
+ } else if ( key === 'apple_pay' ) {
+ markWrap.classList.add( 'frm-payment-method-apple-pay-icon' );
+ const img = document.createElement( 'img' );
+ img.src = `${ baseUrl }apple-pay.svg`;
+ img.alt = 'Apple Pay';
+ img.height = 24;
+ img.style.width = 'auto';
+ markWrap.append( img );
+ }
+
+ label.append( radio );
+ label.append( textWrap );
+ label.append( markWrap );
+
+ if ( key === 'paylater' ) {
+ // Wrap the label and a message container in a div.
+ const wrapper = document.createElement( 'div' );
+ wrapper.classList.add( 'frm-payment-method-paylater-wrap' );
+ wrapper.append( label );
+
+ const msgContainer = document.createElement( 'div' );
+ msgContainer.id = 'frm-paylater-message';
+ msgContainer.classList.add( 'frm-payment-method-paylater-msg' );
+ wrapper.append( msgContainer );
+
+ group.append( wrapper );
+ } else {
+ group.append( label );
+ }
+ }
+
+ return group;
+ }
+
+ /**
+ * Render PayPal Marks into the radio group containers.
+ * Must be called AFTER the radio group is appended to the DOM,
+ * because the Marks API needs the containers to be in the document.
+ */
+ function renderMarks() {
+ if ( 'function' !== typeof paypal.Marks ) {
+ return;
+ }
+
+ for ( const [ key ] of paymentMethods ) {
+ const fundingSource = METHOD_FUNDING_SOURCE[ key ];
+ if ( ! fundingSource ) {
+ continue;
+ }
+
+ const markContainerId = `frm-payment-mark-${ key }`;
+ const container = document.getElementById( markContainerId );
+ if ( ! container ) {
+ continue;
+ }
+
+ try {
+ const mark = paypal.Marks( { fundingSource } );
+ if ( mark.isEligible() ) {
+ mark.render( `#${ markContainerId }` );
+ }
+ } catch ( err ) {
+ // Mark not available for this source, that's fine.
+ }
+ }
+ }
+
+ // ---- Method Selection ----
+
+ /**
+ * Handle switching to a new payment method.
+ *
+ * 1. Lazy-render if this method hasn't been rendered yet.
+ * 2. Hide all method containers.
+ * 3. Show the selected method's container.
+ * 4. Toggle submit button visibility.
+ *
+ * @param {string} key The payment method key to select.
+ */
+ async function selectPaymentMethod( key ) {
+ const method = paymentMethods.get( key );
+ if ( ! method ) {
+ return;
+ }
+
+ selectedMethod = key;
+
+ // Update radio checked state.
+ const radio = document.getElementById( `frm-payment-method-radio-${ key }` );
+ if ( radio && ! radio.checked ) {
+ radio.checked = true;
+ }
+
+ // Lazy-render if this is the first time selecting a non-pre-rendered method.
+ if ( ! method.rendered ) {
+ method.containerEl.innerHTML = ' ';
+ try {
+ await method.render();
+ method.rendered = true;
+ } catch ( err ) {
+ console.error( `Failed to render payment method: ${ key }`, err );
+ method.containerEl.innerHTML = '';
+ }
+ }
+
+ // Hide all method containers.
+ for ( const [ , m ] of paymentMethods ) {
+ if ( m.containerEl ) {
+ m.containerEl.style.display = 'none';
+ }
+ }
+
+ // Show the selected one.
+ if ( method.containerEl ) {
+ method.containerEl.style.display = 'block';
+ }
+
+ // Toggle submit button + card fields visibility.
+ updateSubmitButtonVisibility( key );
+
+ // Update active class on radio labels.
+ document.querySelectorAll( '.frm-payment-method-option' ).forEach( el => {
+ el.classList.remove( 'frm-payment-method-active' );
+ } );
+ document.querySelectorAll( '.frm-payment-method-paylater-wrap' ).forEach( el => {
+ el.classList.remove( 'frm-payment-method-active-wrap' );
+ } );
+ const activeLabel = radio?.closest( '.frm-payment-method-option' );
+ if ( activeLabel ) {
+ activeLabel.classList.add( 'frm-payment-method-active' );
+ const wrapper = activeLabel.closest( '.frm-payment-method-paylater-wrap' );
+ if ( wrapper ) {
+ wrapper.classList.add( 'frm-payment-method-active-wrap' );
+ }
+ }
+ }
+
+ /**
+ * Show/hide the native submit button based on the selected method.
+ *
+ * - Card: submit button visible (user fills card fields, clicks submit).
+ * - Everything else: submit button hidden (PayPal SDK button handles submission).
+ *
+ * @param {string} key The selected payment method key.
+ */
+ function updateSubmitButtonVisibility( key ) {
+ const submitButtons = thisForm.querySelectorAll(
+ 'input[type="submit"], input[type="button"], button[type="submit"]'
+ );
+ const isCardMethod = key === 'card';
+
+ submitButtons.forEach( btn => {
+ if ( btn.classList.contains( 'frm_prev_page' ) ) {
+ return;
+ }
+
+ if ( isCardMethod ) {
+ btn.style.display = '';
+ if ( cardFieldsValid ) {
+ btn.removeAttribute( 'disabled' );
+ } else {
+ btn.setAttribute( 'disabled', 'disabled' );
+ }
+ } else {
+ btn.style.display = 'none';
+ }
+ } );
+ }
+
+ // ---- Card Fields ----
+
+ /**
+ * Create the PayPal CardFields SDK instance (without rendering).
+ *
+ * @return {Object|null} The card fields instance.
+ */
+ function createCardFieldsSDKInstance() {
+ try {
+ const config = {
+ onError,
+ style: frmPayPalVars.style,
+ inputEvents: {
+ onChange: onCardFieldsChange
+ }
+ };
+
+ if ( isRecurring ) {
+ config.createVaultSetupToken = createVaultSetupToken;
+ config.onApprove = onVaultApprove;
+ } else {
+ config.createOrder = createOrder;
+ config.onApprove = onApprove;
+ }
+
+ return window.paypal.CardFields( config );
+ } catch ( err ) {
+ console.error( 'Failed to create CardFields instance', err );
+ return null;
+ }
+ }
+
+ /**
+ * Handle card field value changes.
+ *
+ * @param {Object} data The onChange event data.
+ */
+ function onCardFieldsChange( data ) {
+ cardFieldsValid = data.isFormValid;
+
+ if ( selectedMethod === 'card' ) {
+ if ( cardFieldsValid ) {
+ enableSubmit();
+ } else {
+ disableSubmit( thisForm );
+ }
+ }
+ }
+
+ /**
+ * Render the card number / expiry / CVV fields into the method container.
+ */
+ function renderCardFields() {
+ const method = paymentMethods.get( 'card' );
+ if ( ! method || ! cardFieldsInstance ) {
+ return;
+ }
+
+ const wrapper = document.createElement( 'div' );
+ wrapper.classList.add( 'frm-card-fields-wrapper', 'frm_grid_container' );
+
+ const cardNumberWrapper = document.createElement( 'div' );
+ cardNumberWrapper.id = 'frm-paypal-card-number';
+ cardNumberWrapper.classList.add( 'frm6', 'frm-payment-card-number' );
+
+ const expiryWrapper = document.createElement( 'div' );
+ expiryWrapper.id = 'frm-paypal-card-expiry';
+ expiryWrapper.classList.add( 'frm3', 'frm-payment-card-expiry' );
+
+ const cvvWrapper = document.createElement( 'div' );
+ cvvWrapper.id = 'frm-paypal-card-cvv';
+ cvvWrapper.classList.add( 'frm3', 'frm-payment-card-cvv' );
+
+ wrapper.append( cardNumberWrapper, expiryWrapper, cvvWrapper );
+ method.containerEl.innerHTML = '';
+ method.containerEl.append( wrapper );
+
+ cardFieldsInstance.NumberField().render( '#frm-paypal-card-number' );
+ cardFieldsInstance.ExpiryField().render( '#frm-paypal-card-expiry' );
+ cardFieldsInstance.CVVField().render( '#frm-paypal-card-cvv' );
+
+ setupCardFieldIframeObservers();
+ }
+
+ /**
+ * Watch for PayPal iframe height changes and add 1px to prevent border clipping.
+ */
+ function setupCardFieldIframeObservers() {
+ const ids = [ 'frm-paypal-card-number', 'frm-paypal-card-expiry', 'frm-paypal-card-cvv' ];
+ const wrappers = ids
+ .map( id => document.getElementById( id )?.querySelector( 'iframe' )?.parentNode )
+ .filter( Boolean );
+
+ if ( ! wrappers.length ) {
+ return;
+ }
+
+ const observerOptions = { attributes: true, attributeFilter: [ 'style' ] };
+
+ const observerCallback = ( mutationsList, observer ) => {
+ observer.disconnect();
+
+ for ( const mutation of mutationsList ) {
+ if ( mutation.type !== 'attributes' || mutation.attributeName !== 'style' ) {
+ continue;
+ }
+
+ const currentHeight = mutation.target.offsetHeight;
+ if ( currentHeight > 0 ) {
+ mutation.target.style.height = `${ currentHeight + 1 }px`;
+ }
+ }
+
+ wrappers.forEach( w => observer.observe( w, observerOptions ) );
+ };
+
+ const observer = new MutationObserver( observerCallback );
+ wrappers.forEach( w => observer.observe( w, observerOptions ) );
+ }
+
+ // ---- PayPal Button Creation ----
+
+ /**
+ * Create a PayPal Buttons instance for a given funding source (without rendering).
+ *
+ * @param {string} fundingSource The PayPal FUNDING constant.
+ * @param {boolean} isRecurring Whether this is a recurring payment.
+ *
+ * @return {Object} The PayPal Buttons instance.
+ */
+ function createPayPalButton( fundingSource, isRecurring ) {
+ const buttonConfig = {
+ fundingSource,
+ onApprove,
+ onError,
+ onCancel,
+ style: { ...frmPayPalVars.buttonStyle },
+ };
+
+ const supportedColors = [ 'silver', 'black', 'white' ];
+ const supportedColorsMap = {
+ venmo: [ 'blue' ],
+ paylater: [ 'gold', 'blue' ]
+ };
+
+ supportedColorsMap[ fundingSource ]?.forEach( color => supportedColors.push( color ) );
+
+ if ( ! supportedColors.includes( buttonConfig.style.color ) ) {
+ delete buttonConfig.style.color;
+ }
+
+ if ( isRecurring ) {
+ buttonConfig.createSubscription = createSubscription;
+ } else {
+ buttonConfig.createOrder = createOrder;
+ }
+
+ return paypal.Buttons( buttonConfig );
+ }
+
+ // ---- Google Pay ----
+
+ /**
+ * Check if Google Pay is eligible (without rendering).
+ *
+ * @return {Promise} Whether Google Pay is supported and ready to accept payments in the current environment.
+ */
+ async function checkGooglePayEligibility() {
+ if ( 'function' !== typeof paypal.Googlepay ) {
+ return false;
+ }
+
+ if ( 'undefined' === typeof google || google.payments === undefined ) {
+ return false;
+ }
+
+ try {
+ googlePayConfig = await paypal.Googlepay().config();
+ const paymentsClient = getGooglePaymentsClient();
+
+ const readyToPayRequest = Object.assign( {}, googlePayBaseRequest, {
+ allowedPaymentMethods: googlePayConfig.allowedPaymentMethods
+ } );
+
+ const response = await paymentsClient.isReadyToPay( readyToPayRequest );
+ return response.result;
+ } catch ( err ) {
+ console.error( 'Google Pay eligibility check failed', err );
+ return false;
+ }
+ }
+
+ /**
+ * Render the Google Pay button into its method container.
+ */
+ async function renderGooglePayButton() {
+ const method = paymentMethods.get( 'google_pay' );
+ if ( ! method || ! googlePayConfig ) {
+ return;
+ }
+
+ const paymentsClient = getGooglePaymentsClient();
+ const buttonOptions = Object.assign(
+ getGooglePayButtonStyle(),
+ {
+ onClick: () => onGooglePayButtonClicked( googlePayConfig ),
+ allowedPaymentMethods: googlePayConfig.allowedPaymentMethods
+ }
+ );
+ const button = paymentsClient.createButton( buttonOptions );
+
+ const container = method.containerEl;
+ container.innerHTML = '';
+ container.append( button );
+ }
+
+ /**
+ * Get a Google PaymentsClient configured for the current environment.
+ *
+ * @return {google.payments.api.PaymentsClient} The payments client instance.
+ */
+ function getGooglePaymentsClient() {
+ return new google.payments.api.PaymentsClient( {
+ environment: 'TEST',
+ paymentDataCallbacks: {
+ onPaymentAuthorized
+ }
+ } );
+ }
+
+ /**
+ * Map frmPayPalVars.buttonStyle to Google Pay ButtonOptions.
+ *
+ * @return {Object} Google Pay button style options.
+ */
+ function getGooglePayButtonStyle() {
+ const style = frmPayPalVars.buttonStyle || {};
+ const options = { buttonSizeMode: 'fill' };
+
+ const colorMap = { black: 'black', white: 'white', silver: 'white' };
+ if ( style.color && colorMap[ style.color ] ) {
+ options.buttonColor = colorMap[ style.color ];
+ }
+
+ const typeMap = { pay: 'pay', checkout: 'checkout', buynow: 'buy', donate: 'donate', subscribe: 'subscribe' };
+ if ( style.label && typeMap[ style.label ] ) {
+ options.buttonType = typeMap[ style.label ];
+ }
+
+ if ( style.borderRadius !== undefined ) {
+ options.buttonRadius = style.borderRadius;
+ }
+
+ return options;
+ }
+
+ /**
+ * Handle Google Pay button click.
+ *
+ * @param {Object} config The config from paypal.Googlepay().config().
+ *
+ * @return {Promise}
+ */
+ async function onGooglePayButtonClicked( config ) {
+ const settings = getPayPalSettings()[ 0 ];
+ const currency = ( settings.currency || 'USD' ).toUpperCase();
+
+ const paymentDataRequest = Object.assign( {}, googlePayBaseRequest );
+ paymentDataRequest.allowedPaymentMethods = config.allowedPaymentMethods;
+ paymentDataRequest.merchantInfo = config.merchantInfo;
+ paymentDataRequest.callbackIntents = [ 'PAYMENT_AUTHORIZATION' ];
+
+ paymentDataRequest.transactionInfo = {
+ currencyCode: currency,
+ totalPriceStatus: 'ESTIMATED',
+ totalPrice: '0.00'
+ };
+
+ try {
+ const amount = await new Promise( ( resolve, reject ) => {
+ getPrice( result => {
+ if ( result?.data?.amount ) {
+ resolve( result.data.amount );
+ } else {
+ reject( new Error( 'No amount' ) );
+ }
+ } );
+ } );
+
+ paymentDataRequest.transactionInfo.totalPrice = String( amount );
+ paymentDataRequest.transactionInfo.totalPriceStatus = 'FINAL';
+ } catch ( e ) {
+ // Fall back to ESTIMATED with 0.00 if we can't get the price.
+ }
+
+ const paymentsClient = getGooglePaymentsClient();
+ paymentsClient.loadPaymentData( paymentDataRequest );
+ }
+
+ /**
+ * Callback invoked by Google Pay when the buyer authorizes the payment.
+ *
+ * @param {Object} paymentData The Google Pay PaymentData response object.
+ *
+ * @return {Promise} Transaction state result for the Google Pay sheet.
+ */
+ async function onPaymentAuthorized( paymentData ) {
+ try {
+ const orderId = await createOrderForGooglePay();
+
+ const confirmOrderResponse = await paypal.Googlepay().confirmOrder( {
+ orderId,
+ paymentMethodData: paymentData.paymentMethodData
+ } );
+
+ if ( confirmOrderResponse.status === 'PAYER_ACTION_REQUIRED' ) {
+ await paypal.Googlepay().initiatePayerAction( { orderId } );
+ }
+
+ if ( confirmOrderResponse.status === 'APPROVED' || confirmOrderResponse.status === 'PAYER_ACTION_REQUIRED' ) {
+ await onApprove( {
+ orderID: orderId,
+ paymentSource: 'google_pay'
+ } );
+
+ return { transactionState: 'SUCCESS' };
+ }
+
+ return {
+ transactionState: 'ERROR',
+ error: {
+ intent: 'PAYMENT_AUTHORIZATION',
+ message: 'Payment could not be authorized'
+ }
+ };
+ } catch ( err ) {
+ return {
+ transactionState: 'ERROR',
+ error: {
+ intent: 'PAYMENT_AUTHORIZATION',
+ message: err.message || 'Payment failed'
+ }
+ };
+ }
+ }
+
+ // ---- Apple Pay ----
+
+ /**
+ * Map frmPayPalVars.buttonStyle to Apple Pay button attributes and CSS custom properties.
+ *
+ * The web component uses CSS custom properties for sizing:
+ * --apple-pay-button-width, --apple-pay-button-height, --apple-pay-button-border-radius,
+ * --apple-pay-button-padding, --apple-pay-button-box-sizing.
+ *
+ * @return {Object} Apple Pay button style options.
+ */
+ function getApplePayButtonStyle() {
+ const style = frmPayPalVars.buttonStyle || {};
+ const options = {
+ buttonStyle: 'black',
+ buttonType: 'buy'
+ };
+
+ const colorMap = {
+ black: 'black',
+ white: 'white',
+ silver: 'white-outline'
+ };
+ if ( style.color && colorMap[ style.color ] ) {
+ options.buttonStyle = colorMap[ style.color ];
+ }
+
+ const typeMap = {
+ pay: 'pay',
+ checkout: 'check-out',
+ buynow: 'buy',
+ donate: 'donate',
+ subscribe: 'subscribe',
+ buy: 'buy'
+ };
+ if ( style.label && typeMap[ style.label ] ) {
+ options.buttonType = typeMap[ style.label ];
+ }
+
+ if ( style.borderRadius !== undefined ) {
+ options.borderRadius = style.borderRadius;
+ }
+
+ return options;
+ }
+
+ /**
+ * Check if Apple Pay is eligible (without rendering).
+ *
+ * @return {Promise} An empty string if Apple Pay is supported and ready to accept payments in the current environment, or a string with the reason for ineligibility.
+ */
+ async function checkApplePayEligibility() {
+ if ( 'function' !== typeof paypal.Applepay ) {
+ return 'PayPal Apple Pay SDK not loaded';
+ }
+
+ if ( ! window.ApplePaySession ) {
+ return 'Not on Apple device';
+ }
+
+ if ( ! ApplePaySession.canMakePayments() ) {
+ return 'Apple Pay not configured on device';
+ }
+
+ // Use paypal.Applepay().config() as the definitive eligibility check (per PayPal multiparty docs).
+ try {
+ applePayConfig = await paypal.Applepay().config();
+
+ if ( ! applePayConfig || ! applePayConfig.isEligible ) {
+ return 'PayPal reports Apple Pay is not eligible for this merchant/domain';
+ }
+ } catch ( err ) {
+ return `Apple Pay config check failed: ${ err.message }`;
+ }
+
+ return '';
+ }
+
+ /**
+ * Render the Apple Pay button into its method container.
+ *
+ * The web component uses CSS custom properties for sizing,
+ * not standard CSS properties or inline styles.
+ */
+ async function renderApplePayButton() {
+ const method = paymentMethods.get( 'apple_pay' );
+ if ( ! method ) {
+ return;
+ }
+
+ const container = method.containerEl;
+ container.innerHTML = '';
+
+ const applePayStyle = getApplePayButtonStyle();
+
+ const btn = document.createElement( 'apple-pay-button' );
+ btn.setAttribute( 'buttonstyle', applePayStyle.buttonStyle );
+ btn.setAttribute( 'type', applePayStyle.buttonType );
+ btn.setAttribute( 'locale', 'en' );
+
+ // Use CSS custom properties (the only way to style the web component).
+ btn.style.setProperty( '--apple-pay-button-width', '100%' );
+ btn.style.setProperty( '--apple-pay-button-height', '40px' );
+ btn.style.setProperty( '--apple-pay-button-padding', '6px 0' );
+ btn.style.setProperty( '--apple-pay-button-box-sizing', 'border-box' );
+
+ if ( applePayStyle.borderRadius !== undefined ) {
+ btn.style.setProperty( '--apple-pay-button-border-radius', `${ applePayStyle.borderRadius }px` );
+ }
+
+ btn.addEventListener( 'click', onApplePayButtonClick );
+ container.append( btn );
+ }
+
+ /**
+ * Handle click on the Apple Pay button.
+ * Fetches the price asynchronously, then creates an ApplePaySession and processes the payment via PayPal.
+ */
+ async function onApplePayButtonClick() {
+ if ( ! applePayConfig ) {
+ console.error( 'Apple Pay config not available' );
+ return;
+ }
+
+ let amount = '0.00';
+
+ // Try to fetch the actual price from the server.
+ try {
+ amount = await new Promise( ( resolve, reject ) => {
+ getPrice( result => {
+ if ( result?.data?.amount ) {
+ resolve( String( result.data.amount ) );
+ } else {
+ reject( new Error( 'No amount' ) );
+ }
+ } );
+ } );
+ } catch ( e ) {
+ // Fall back to form total if we can't get the price from server.
+ }
+
+ const paymentRequest = {
+ countryCode: applePayConfig.countryCode,
+ merchantCapabilities: applePayConfig.merchantCapabilities,
+ supportedNetworks: applePayConfig.supportedNetworks,
+ currencyCode: applePayConfig.currencyCode || 'USD',
+ total: {
+ label: document.title || 'Payment',
+ type: 'final',
+ amount: amount,
+ },
+ };
+
+ // ApplePaySession MUST be created synchronously inside the click handler.
+ const session = new ApplePaySession( 4, paymentRequest );
+ const applepay = paypal.Applepay();
+
+ session.onvalidatemerchant = event => {
+ applepay.validateMerchant( {
+ validationUrl: event.validationURL,
+ displayName: document.title || 'Payment'
+ } )
+ .then( validateResult => {
+ session.completeMerchantValidation( validateResult.merchantSession );
+ } )
+ .catch( validateError => {
+ console.error( 'Apple Pay merchant validation failed', validateError );
+ session.abort();
+ } );
+ };
+
+ session.onpaymentauthorized = event => {
+ createOrderForApplePay()
+ .then( orderId => {
+ return applepay.confirmOrder( {
+ orderId,
+ token: event.payment.token,
+ billingContact: event.payment.billingContact
+ } )
+ .then( () => {
+ session.completePayment( ApplePaySession.STATUS_SUCCESS );
+ onApprove( {
+ orderID: orderId,
+ paymentSource: 'apple_pay'
+ } );
+ } );
+ } )
+ .catch( err => {
+ console.error( 'Apple Pay payment failed', err );
+ session.completePayment( ApplePaySession.STATUS_FAILURE );
+ } );
+ };
+
+ session.oncancel = () => {
+ onCancel();
+ };
+
+ session.begin();
+ }
+
+ // ---- AJAX / Order Creation ----
+
+ /**
+ * Create a PayPal order via AJAX.
+ *
+ * @param {Object} data
+ * @return {Promise} The order ID.
+ */
+ async function createOrder( data ) {
+ ++running;
+ thisForm.classList.add( 'frm_loading_form' );
+
+ const formData = new FormData( thisForm );
+ formData.append( 'action', 'frm_paypal_create_order' );
+ formData.append( 'nonce', frmPayPalVars.nonce );
+ formData.append( 'payment_source', data.paymentSource );
+
+ formData.delete( 'frm_action' );
+ formData.delete( 'form_key' );
+ formData.delete( 'item_key' );
+
+ const response = await fetch( frmPayPalVars.ajax, {
+ method: 'POST',
+ body: formData
+ } );
+
+ if ( ! response.ok ) {
+ thisForm.classList.remove( 'frm_loading_form' );
+ throw new Error( 'Failed to create PayPal order' );
+ }
+
+ const orderData = await response.json();
+
+ if ( ! orderData.success || ! orderData.data.orderID ) {
+ thisForm.classList.remove( 'frm_loading_form' );
+ throwServerError( orderData.data, 'Failed to create PayPal order', 'create_order' );
+ }
+
+ return orderData.data.orderID;
+ }
+
+ async function createSubscription( data ) {
+ thisForm.classList.add( 'frm_loading_form' );
+
+ const formData = new FormData( thisForm );
+ formData.append( 'action', 'frm_paypal_create_subscription' );
+ formData.append( 'nonce', frmPayPalVars.nonce );
+
+ formData.delete( 'frm_action' );
+ formData.delete( 'form_key' );
+ formData.delete( 'item_key' );
+
+ const response = await fetch( frmPayPalVars.ajax, {
+ method: 'POST',
+ body: formData
+ } );
+
+ if ( ! response.ok ) {
+ thisForm.classList.remove( 'frm_loading_form' );
+ const errorData = await response.json();
+ throwServerError( errorData.data, 'Failed to create PayPal subscription', 'create_subscription' );
+ }
+
+ const orderData = await response.json();
+
+ if ( ! orderData.success || ! orderData.data.subscriptionID ) {
+ thisForm.classList.remove( 'frm_loading_form' );
+ throwServerError( orderData.data, 'Failed to create PayPal subscription', 'create_subscription' );
+ }
+
+ return orderData.data.subscriptionID;
+ }
+
+ /**
+ * Create a PayPal order specifically for Google Pay.
+ *
+ * @return {Promise} The PayPal order ID.
+ */
+ async function createOrderForGooglePay() {
+ const formData = new FormData( thisForm );
+ formData.append( 'action', 'frm_paypal_create_order' );
+ formData.append( 'nonce', frmPayPalVars.nonce );
+ formData.append( 'payment_source', 'google_pay' );
+
+ formData.delete( 'frm_action' );
+ formData.delete( 'form_key' );
+ formData.delete( 'item_key' );
+
+ const response = await fetch( frmPayPalVars.ajax, {
+ method: 'POST',
+ body: formData
+ } );
+
+ if ( ! response.ok ) {
+ throw new Error( 'Failed to create PayPal order for Google Pay' );
+ }
+
+ const orderData = await response.json();
+
+ if ( ! orderData.success || ! orderData.data.orderID ) {
+ throwServerError( orderData.data, 'Failed to create PayPal order for Google Pay', 'create_order' );
+ }
+
+ return orderData.data.orderID;
+ }
+
+ /**
+ * Create a PayPal order specifically for Apple Pay.
+ *
+ * @return {Promise} The PayPal order ID.
+ */
+ async function createOrderForApplePay() {
+ const formData = new FormData( thisForm );
+ formData.append( 'action', 'frm_paypal_create_order' );
+ formData.append( 'nonce', frmPayPalVars.nonce );
+ formData.append( 'payment_source', 'apple_pay' );
+
+ formData.delete( 'frm_action' );
+ formData.delete( 'form_key' );
+ formData.delete( 'item_key' );
+
+ const response = await fetch( frmPayPalVars.ajax, {
+ method: 'POST',
+ body: formData
+ } );
+
+ if ( ! response.ok ) {
+ throw new Error( 'Failed to create PayPal order for Apple Pay' );
+ }
+
+ const orderData = await response.json();
+
+ if ( ! orderData.success || ! orderData.data.orderID ) {
+ throwServerError( orderData.data, 'Failed to create PayPal order for Apple Pay', 'create_order' );
+ }
+
+ return orderData.data.orderID;
+ }
+
+ async function createVaultSetupToken() {
+ const formData = new FormData( thisForm );
+ formData.append( 'action', 'frm_paypal_create_vault_setup_token' );
+ formData.append( 'nonce', frmPayPalVars.nonce );
+ formData.append( 'payment_source', 'card' );
+
+ formData.delete( 'frm_action' );
+ formData.delete( 'form_key' );
+ formData.delete( 'item_key' );
+
+ const response = await fetch( frmPayPalVars.ajax, {
+ method: 'POST',
+ body: formData
+ } );
+
+ if ( ! response.ok ) {
+ throw new Error( 'Failed to create PayPal vault setup token' );
+ }
+
+ const tokenData = await response.json();
+
+ if ( ! tokenData.success || ! tokenData.data.token ) {
+ console.error( 'Vault setup token response:', tokenData );
+ throwServerError( tokenData.data, 'Failed to create PayPal vault setup token', 'create_vault_token' );
+ }
+
+ return tokenData.data.token;
+ }
+
+ // ---- Payment Callbacks ----
+
+ /**
+ * Handle vault approval for card field subscriptions.
+ * Receives the vaultSetupToken, sends it to the server to create
+ * a payment token and subscription, then submits the form.
+ *
+ * @param {Object} data The approval data containing vaultSetupToken.
+ */
+ async function onVaultApprove( data ) {
+ if ( 'NO' === data.liabilityShift || 'UNKNOWN' === data.liabilityShift ) {
+ onError( new Error( 'This payment was flagged as possible fraud and has been rejected.' ) );
+ return;
+ }
+
+ try {
+ let vaultInput = thisForm.querySelector( 'input[name="vault_setup_token"]' );
+ if ( ! vaultInput ) {
+ vaultInput = document.createElement( 'input' );
+ vaultInput.type = 'hidden';
+ vaultInput.name = 'vault_setup_token';
+ thisForm.append( vaultInput );
+ }
+ vaultInput.value = data.vaultSetupToken;
+
+ const subscriptionID = await createSubscription( data );
+ await onApprove( {
+ subscriptionID,
+ paymentSource: 'card'
+ } );
+ } catch ( err ) {
+ onError( err );
+ }
+ }
+
+ /**
+ * Handle approved payment.
+ *
+ * @param {Object} data The approval data containing orderID.
+ */
+ async function onApprove( data ) {
+ if ( 'NO' === data.liabilityShift || 'UNKNOWN' === data.liabilityShift ) {
+ onError( new Error( 'This payment was flagged as possible fraud and has been rejected.' ) );
+ return;
+ }
+
+ if ( data.orderID ) {
+ const orderInput = document.createElement( 'input' );
+ orderInput.type = 'hidden';
+ orderInput.name = 'paypal_order_id';
+ orderInput.value = data.orderID;
+ thisForm.append( orderInput );
+ }
+
+ if ( data.subscriptionID ) {
+ const subscriptionInput = document.createElement( 'input' );
+ subscriptionInput.type = 'hidden';
+ subscriptionInput.name = 'paypal_subscription_id';
+ subscriptionInput.value = data.subscriptionID;
+ thisForm.append( subscriptionInput );
+ }
+
+ const paymentSourceInput = document.createElement( 'input' );
+ paymentSourceInput.type = 'hidden';
+ paymentSourceInput.name = 'paypal_payment_source';
+
+ // When onApprove is called for card fields, there is no paymentSource specified.
+ paymentSourceInput.value = data.paymentSource || 'card';
+
+ thisForm.append( paymentSourceInput );
+
+ if ( ! submitEvent ) {
+ submitEvent = new Event( 'submit', { cancelable: true, bubbles: true } );
+ submitEvent.target = thisForm;
+ }
+
+ if ( typeof frmFrontForm.submitFormManual === 'function' ) {
+ frmFrontForm.submitFormManual( submitEvent, thisForm );
+ } else {
+ thisForm.submit();
+ }
+ }
+
+ /**
+ * Handle payment errors.
+ *
+ * @param {Error} err The error object.
+ */
+ function onError( err ) {
+ console.error( 'PayPal onError:', err );
+ running--;
+ if ( running === 0 && thisForm ) {
+ if ( selectedMethod === 'card' && cardFieldsValid ) {
+ enableSubmit();
+ } else {
+ frmFrontForm.removeSubmitLoading( jQuery( thisForm ), 'disable', 0 );
+ }
+ }
+ reportErrorToServer( err );
+ }
+
+ /**
+ * Report a PayPal error to the server for logging and permission-aware display.
+ *
+ * Posts the error message and debug ID to the server endpoint.
+ * The server logs the debug ID and returns a display message that
+ * includes the debug ID only for authorized users.
+ *
+ * @param {*} err The error object, string, or PayPal error payload.
+ * @param {string} context A label for where the error occurred (e.g. 'card_submit').
+ */
+ let lastDebugId = '';
+ let lastContext = '';
+
+ function reportErrorToServer( err, context ) {
+ const errorMessage = extractErrorMessage( err );
+ // Extract debug ID from error message if it's in {{debug_id:...}} format
+ let debugId = lastDebugId || ( err && err.debugId ? err.debugId : '' );
+ const debugIdMatch = errorMessage.match( /\{\{debug_id:([^}]+)\}\}/ );
+ if ( debugIdMatch && debugIdMatch[1] ) {
+ debugId = debugIdMatch[1];
+ // Remove the debug ID from the error message for display
+ errorMessage = errorMessage.replace( /\{\{debug_id:[^}]+\}\}/, '' ).trim();
+ }
+ const errorContext = context || lastContext || '';
+ lastDebugId = '';
+ lastContext = '';
+
+ const formData = new FormData();
+ formData.append( 'action', 'frm_paypal_report_error' );
+ formData.append( 'nonce', frmPayPalVars.nonce );
+ formData.append( 'error_message', errorMessage );
+ formData.append( 'debug_id', debugId );
+ formData.append( 'context', errorContext );
+
+ fetch( frmPayPalVars.ajax, {
+ method: 'POST',
+ body: formData
+ } )
+ .then( response => response.json() )
+ .then( result => {
+ if ( result.success && result.data?.message ) {
+ displayPaymentFailure( result.data.message );
+ } else {
+ displayPaymentFailure( errorMessage );
+ }
+ } )
+ .catch( () => {
+ displayPaymentFailure( errorMessage );
+ } );
+ }
+
+ /**
+ * Throw an Error from a server error response.
+ *
+ * @param {*} data The response data from wp_send_json_error.
+ * @param {string} fallback Fallback message if data is unusable.
+ */
+ function throwServerError( data, fallback, context ) {
+ let message = fallback;
+
+ if ( data && 'object' === typeof data && data.message ) {
+ message = data.message;
+ lastDebugId = data.debug_id || '';
+ } else if ( 'string' === typeof data && data ) {
+ const debugMatch = data.match( /\{\{debug_id:([^}]+)\}\}/ );
+ if ( debugMatch ) {
+ lastDebugId = debugMatch[1];
+ message = data.replace( /\{\{debug_id:[^}]+\}\}/, '' ).trim();
+ } else {
+ message = data;
+ }
+ }
+
+ lastContext = context || '';
+ throw new Error( message );
+ }
+
+ function onCancel() {
+ thisForm.classList.add( 'frm_loading_form' );
+ frmFrontForm.removeSubmitLoading( jQuery( thisForm ), 'disable', 0 );
+ }
+
+ // ---- Submit Button Helpers ----
+
+ /**
+ * Enable the submit button for the form.
+ */
+ function enableSubmit() {
+ if ( running > 0 ) {
+ return;
+ }
+
+ thisForm.classList.add( 'frm_loading_form' );
+ frmFrontForm.removeSubmitLoading( jQuery( thisForm ), 'enable', 0 );
+
+ const event = new CustomEvent( 'frmPayPalLiteEnableSubmit', {
+ detail: { form: thisForm }
+ } );
+ document.dispatchEvent( event );
+ }
+
+ /**
+ * Disable submit button for a target form.
+ *
+ * @param {Element} form
+ * @return {void}
+ */
+ function disableSubmit( form ) {
+ jQuery( form ).find( 'input[type="submit"],input[type="button"],button[type="submit"]' ).not( '.frm_prev_page' ).attr( 'disabled', 'disabled' );
+
+ const event = new CustomEvent( 'frmPayPalLiteDisableSubmit', {
+ detail: { form }
+ } );
+ document.dispatchEvent( event );
+ }
+
+ // ---- Error Display ----
+
+ /**
+ * Extract a user-friendly message from a PayPal error.
+ *
+ * PayPal CardFields rejections surface a structured payload that includes a
+ * `details` array with per-field `description` strings (e.g. "Invalid card
+ * number"). We prefer those over the generic top-level `message` so the
+ * buyer sees the actionable reason.
+ *
+ * @param {*} err The thrown error, string, or PayPal error payload.
+ * @return {string} A human-readable message.
+ */
+ function extractErrorMessage( err ) {
+ const fallback = 'Payment failed. Please try again.';
+
+ if ( ! err ) {
+ return fallback;
+ }
+
+ if ( 'string' === typeof err ) {
+ return parsePayPalErrorString( err ) || err;
+ }
+
+ // PayPal SDK sometimes nests the payload under `err.data` or `err.response`.
+ const payloads = [ err, err.data, err.response ].filter( Boolean );
+ for ( const payload of payloads ) {
+ const fromDetails = getDescriptionFromDetails( payload.details );
+ if ( fromDetails ) {
+ return fromDetails;
+ }
+ }
+
+ if ( err.message ) {
+ return parsePayPalErrorString( err.message ) || err.message;
+ }
+
+ return fallback;
+ }
+
+ /**
+ * Extract the first `description` from a PayPal `details` array.
+ *
+ * @param {Array} details The PayPal error details array.
+ * @return {string} The description, or an empty string if none.
+ */
+ function getDescriptionFromDetails( details ) {
+ if ( ! Array.isArray( details ) || ! details.length ) {
+ return '';
+ }
+
+ for ( const detail of details ) {
+ if ( detail && detail.description ) {
+ return detail.description;
+ }
+ }
+
+ return '';
+ }
+
+ /**
+ * Parse a PayPal error string that may contain an embedded JSON payload.
+ *
+ * The CardFields SDK can throw errors whose message looks like:
+ * `Error: ... {"name":"UNPROCESSABLE_ENTITY","details":[...], ...}`.
+ *
+ * @param {string} str The raw error string.
+ * @return {string} The extracted description, or an empty string.
+ */
+ function parsePayPalErrorString( str ) {
+ const start = str.indexOf( '{' );
+ const end = str.lastIndexOf( '}' );
+ if ( start === -1 || end === -1 || end <= start ) {
+ return '';
+ }
+
+ try {
+ const payload = JSON.parse( str.slice( start, end + 1 ) );
+ return getDescriptionFromDetails( payload.details );
+ } catch ( e ) {
+ return '';
+ }
+ }
+
+ /**
+ * Display an error message in the payment form.
+ *
+ * @param {string} errorMessage The message to display. May contain a newline-separated
+ * debug ID line when the server includes it for authorized users.
+ * @return {void}
+ */
+ function displayPaymentFailure( errorMessage ) {
+ if ( ! thisForm ) {
+ return;
+ }
+
+ const statusContainer = thisForm.querySelector( '.frm-card-errors' );
+ if ( statusContainer ) {
+ statusContainer.textContent = '';
+
+ const lines = errorMessage.split( '\n' );
+ lines.forEach( function( line, index ) {
+ if ( index > 0 ) {
+ statusContainer.appendChild( document.createElement( 'br' ) );
+ }
+ statusContainer.appendChild( document.createTextNode( line ) );
+ } );
+
+ statusContainer.style.display = 'block';
+ }
+ }
+
+ /**
+ * Clear error messages.
+ */
+ function clearErrors() {
+ if ( ! thisForm ) {
+ return;
+ }
+
+ const statusContainer = thisForm.querySelector( '.frm-card-errors' );
+ if ( statusContainer ) {
+ statusContainer.textContent = '';
+ statusContainer.style.display = 'none';
+ }
+ }
+
+ // ---- Form Submission ----
+
+ /**
+ * Validate the form before submission.
+ *
+ * @param {Element} form
+ * @return {boolean} True if valid.
+ */
+ function validateFormSubmit( form ) {
+ if ( typeof frmFrontForm.validateFormSubmit !== 'function' ) {
+ return true;
+ }
+
+ const errors = frmFrontForm.validateFormSubmit( form );
+ const keys = Object.keys( errors );
+
+ if ( 1 === keys.length && errors[ keys[ 0 ] ] === '' ) {
+ keys.pop();
+ }
+
+ return 0 === keys.length;
+ }
+
+ /**
+ * Check if the current form action type should trigger payment processing.
+ *
+ * @return {boolean} True if current action type should be processed.
+ */
+ function currentActionTypeShouldBeProcessed() {
+ const action = jQuery( thisForm ).find( 'input[name="frm_action"]' ).val();
+
+ if ( 'object' !== typeof window.frmProForm || 'function' !== typeof window.frmProForm.currentActionTypeShouldBeProcessed ) {
+ return 'create' === action;
+ }
+
+ return window.frmProForm.currentActionTypeShouldBeProcessed(
+ action,
+ { thisForm }
+ );
+ }
+
+ /**
+ * Handle form submission. Routes to card submission when card is selected.
+ * For button-based methods (PayPal, Venmo, etc.) the SDK handles submission via onApprove.
+ *
+ * @param {Event} event
+ */
+ async function handleFormSubmission( event ) {
+ if ( ! currentActionTypeShouldBeProcessed() ) {
+ return;
+ }
+
+ // Only intercept submission when card is the selected method.
+ if ( selectedMethod !== 'card' ) {
+ return;
+ }
+
+ event.preventDefault();
+ event.stopPropagation();
+
+ submitEvent = event;
+
+ clearErrors();
+
+ thisForm.classList.add( 'frm_js_validate' );
+ if ( ! validateFormSubmit( thisForm ) ) {
+ return;
+ }
+
+ disableSubmit( thisForm );
+
+ const meta = addName( jQuery( thisForm ) );
+
+ const submitArgs = {};
+
+ if ( meta.name ) {
+ submitArgs.cardholderName = meta.name;
+ }
+
+ /*
+ TODO Add the billing address here as well.
+ Stripe calls a window.frmProForm.addAddressMeta function.
+ That's included in frmstrp.js though, so we need to add a script in Pro for PayPal as well.
+
+ billingAddress: {
+ addressLine1: '555 Billing Ave',
+ adminArea1: 'NY',
+ adminArea2: 'New York',
+ postalCode: '10001',
+ countryCode: 'US'
+ }
+ */
+
+ try {
+ await cardFieldsInstance.submit( submitArgs );
+ } catch ( err ) {
+ console.error( 'Card fields submit error:', err );
+ running--;
+ if ( running === 0 && thisForm ) {
+ enableSubmit();
+ }
+ reportErrorToServer( err, 'card_submit' );
+ }
+ }
+
+ // ---- Price / Pay Later ----
+
+ /**
+ * Get PayPal settings from frmPayPalVars.settings.
+ *
+ * @return {Array} Array of PayPal settings.
+ */
+ function getPayPalSettings() {
+ const paypalSettings = [];
+ frmPayPalVars.settings.forEach( function( setting ) {
+ if ( setting.gateways.includes( 'paypal' ) ) {
+ paypalSettings.push( setting );
+ }
+ } );
+ return paypalSettings;
+ }
+
+ /**
+ * Get the field IDs that affect the price.
+ *
+ * @return {Array} Array of field IDs.
+ */
+ function getPriceFields() {
+ const priceFields = [];
+ getPayPalSettings().forEach( function( setting ) {
+ if ( -1 !== setting.fields ) {
+ setting.fields.forEach( function( field ) {
+ if ( isNaN( field ) ) {
+ priceFields.push( `field_${ field }` );
+ } else {
+ priceFields.push( field );
+ }
+ } );
+ }
+ } );
+ return priceFields;
+ }
+
+ /**
+ * Handle price field changes.
+ *
+ * @param {Event} _ The event object.
+ * @param {HTMLElement} field The changed field element.
+ * @param {string} fieldId The changed field ID.
+ */
+ function priceChanged( _, field, fieldId ) {
+ const price = getPriceFields();
+ let run = price.includes( fieldId ) || price.includes( field.id );
+
+ if ( ! run ) {
+ for ( let i = 0; i < price.length; i++ ) {
+ if ( field.id.indexOf( price[ i ] ) === 0 ) {
+ run = true;
+ break;
+ }
+ }
+ }
+
+ if ( ! run ) {
+ return;
+ }
+
+ const form = field.closest ? field.closest( 'form' ) : jQuery( field ).closest( 'form' )[ 0 ];
+ if ( ! form ) {
+ return;
+ }
+
+ getPrice(
+ function( result ) {
+ updatePayLaterMessage( result.data.amount );
+ }
+ );
+ }
+
+ function getPrice( callback ) {
+ const formData = new FormData( thisForm );
+ formData.append( 'action', 'frm_paypal_get_amount' );
+ formData.append( 'nonce', frmPayPalVars.nonce );
+
+ formData.delete( 'frm_action' );
+ formData.delete( 'form_key' );
+ formData.delete( 'item_key' );
+
+ fetch( frmPayPalVars.ajax, {
+ method: 'POST',
+ body: formData
+ } )
+ .then( response => response.json() )
+ .then( function( result ) {
+ if ( result.success && result.data?.amount ) {
+ callback( result );
+ }
+ } )
+ .catch( function( err ) {
+ console.error( 'Failed to get PayPal amount', err );
+ } );
+ }
+
+ /**
+ * Re-render the Pay Later message with the current amount.
+ *
+ * @param {number|string} amount
+ *
+ * @return {void}
+ */
+ function updatePayLaterMessage( amount ) {
+ const banner = document.getElementById( 'frm-paylater-message' );
+ if ( banner ) {
+ banner.setAttribute( 'data-pp-amount', amount );
+ }
+ }
+
+ function renderMessages() {
+ if ( 'function' !== typeof paypal.Messages ) {
+ return;
+ }
+
+ const container = document.getElementById( 'frm-paylater-message' );
+ if ( ! container ) {
+ return;
+ }
+
+ getPrice( function( result ) {
+ container.setAttribute( 'data-pp-amount', result.data.amount );
+ } );
+
+ paypal.Messages( {
+ style: {
+ layout: 'text',
+ logo: { type: 'primary' },
+ }
+ } ).render( '#frm-paylater-message' );
+ }
+
+ /**
+ * Check for price fields on load and trigger an initial price update.
+ */
+ function checkPriceFieldsOnLoad() {
+ getPriceFields().forEach( function( fieldId ) {
+ const fieldContainer = document.getElementById( `frm_field_${ fieldId }_container` );
+ if ( ! fieldContainer ) {
+ return;
+ }
+
+ const input = fieldContainer.querySelector( 'input[name^=item_meta]' );
+ if ( input && '' !== input.value ) {
+ priceChanged( null, input, fieldId );
+ }
+ } );
+ }
+
+ // ---- Name Fields ----
+
+ function addName( $form ) {
+ let i;
+ let firstField;
+ let lastField;
+ let firstFieldContainer;
+ let lastFieldContainer;
+ let firstNameID = '';
+ let lastNameID = '';
+ let subFieldEl;
+
+ const cardObject = {};
+ const { settings } = frmPayPalVars;
+
+ /**
+ * Gets first, middle or last name from the given field.
+ *
+ * @param {number|HTMLElement} field Field ID or Field element.
+ * @param {string} subFieldName Subfield name.
+ * @return {string} Name field value.
+ */
+ const getNameFieldValue = function( field, subFieldName ) {
+ if ( 'object' !== typeof field ) {
+ field = document.getElementById( `frm_field_${ field }_container` );
+ }
+
+ if ( ! field || 'object' !== typeof field || 'function' !== typeof field.querySelector ) {
+ return '';
+ }
+
+ subFieldEl = field.querySelector( `.frm_combo_inputs_container .frm_form_subfield-${ subFieldName } input` );
+ if ( ! subFieldEl ) {
+ return '';
+ }
+
+ return subFieldEl.value;
+ };
+
+ for ( i = 0; i < settings.length; i++ ) {
+ firstNameID = settings[ i ].first_name;
+ lastNameID = settings[ i ].last_name;
+ }
+
+ /**
+ * Returns a name field container or element.
+ *
+ * @param {number} fieldID
+ * @param {string} type Either 'container' or 'field'
+ * @param {object|null} $form
+ * @return {HTMLElement|null} Name field container or element.
+ */
+ function getNameFieldItem( fieldID, type, $form = null ) {
+ const queryForNameFieldIsFound = 'object' === typeof window.frmProForm && 'function' === typeof window.frmProForm.queryForNameField;
+
+ if ( type === 'container' ) {
+ return queryForNameFieldIsFound
+ ? window.frmProForm.queryForNameField( fieldID, 'container' )
+ : document.querySelector( `#frm_field_${ fieldID }_container, .frm_field_${ fieldID }_container` );
+ }
+
+ return queryForNameFieldIsFound
+ ? window.frmProForm.queryForNameField( fieldID, 'field', $form[ 0 ] )
+ : $form[ 0 ].querySelector( `#frm_field_${ fieldID }_container input, input[name="item_meta[${ fieldID }]"], .frm_field_${ fieldID }_container input` );
+ }
+
+ if ( firstNameID !== '' ) {
+ firstFieldContainer = getNameFieldItem( firstNameID, 'container' );
+ if ( firstFieldContainer?.querySelector( '.frm_combo_inputs_container' ) ) {
+ cardObject.name = getNameFieldValue( firstFieldContainer, 'first' );
+ } else {
+ firstField = getNameFieldItem( firstNameID, 'field', $form );
+ if ( firstField?.value ) {
+ cardObject.name = firstField.value;
+ }
+ }
+ }
+
+ if ( lastNameID !== '' ) {
+ lastFieldContainer = getNameFieldItem( lastNameID, 'container' );
+ if ( lastFieldContainer?.querySelector( '.frm_combo_inputs_container' ) ) {
+ cardObject.name = `${ cardObject.name } ${ getNameFieldValue( lastFieldContainer, 'last' ) }`;
+ } else {
+ lastField = getNameFieldItem( lastNameID, 'field', $form );
+ if ( lastField?.value ) {
+ cardObject.name = `${ cardObject.name } ${ lastField.value }`;
+ }
+ }
+ }
+
+ return cardObject;
+ }
+
+ // ---- Bootstrap ----
+
+ document.addEventListener( 'DOMContentLoaded', async function() {
+ if ( window.paypal ) {
+ paypalInit();
+ return;
+ }
+
+ const interval = setInterval(
+ function() {
+ if ( window.paypal ) {
+ paypalInit();
+ clearInterval( interval );
+ }
+ },
+ 50
+ );
+ } );
+
+ jQuery( document ).on( 'frmPageChanged', function() {
+ paypalInit();
+ } );
+}() );
diff --git a/paypal/js/settings.js b/paypal/js/settings.js
new file mode 100644
index 0000000000..81964ac91b
--- /dev/null
+++ b/paypal/js/settings.js
@@ -0,0 +1,84 @@
+( function() {
+ // Use event delegation so Reconnect buttons rendered after AJAX seller-status
+ // responses also trigger the OAuth flow.
+ document.addEventListener( 'click', function( e ) {
+ const button = e.target.closest( '.frm-connect-paypal-with-oauth' );
+ if ( ! button ) {
+ return;
+ }
+
+ e.preventDefault();
+
+ const { mode, reconnect } = button.dataset;
+ const formData = new FormData();
+ formData.append( 'mode', mode );
+ if ( reconnect ) {
+ formData.append( 'reconnect', reconnect );
+ }
+ frmDom.ajax.doJsonPost( 'paypal_oauth', formData ).then(
+ function( response ) {
+ if ( response.redirect_url !== undefined ) {
+ window.location = response.redirect_url;
+ }
+ }
+ ).catch(
+ function( error ) {
+ /* eslint-disable-next-line no-console */
+ console.error( 'PayPal OAuth request failed:', error );
+ }
+ );
+ } );
+
+ document.addEventListener(
+ 'click',
+ function( event ) {
+ if ( ! event.target.id.startsWith( 'frm_disconnect_paypal_' ) ) {
+ return;
+ }
+
+ event.preventDefault();
+ const formData = new FormData();
+ formData.append( 'testMode', 'test' === event.target.id.replace( 'frm_disconnect_paypal_', '' ) ? 1 : 0 );
+ frmDom.ajax.doJsonPost( 'paypal_disconnect', formData ).then(
+ function( response ) {
+ if ( response.success ) {
+ window.location.reload();
+ }
+ }
+ );
+ }
+ );
+
+ document.querySelectorAll( '.frm_paypal_seller_status_placeholder' ).forEach(
+ function( placeholder ) {
+ const { mode } = placeholder.dataset;
+ const interval = setInterval(
+ function() {
+ if ( placeholder.offsetParent === null ) {
+ return;
+ }
+
+ clearInterval( interval );
+
+ const formData = new FormData();
+ formData.append( 'testMode', 'test' === mode ? 1 : 0 );
+ frmDom.ajax.doJsonPost( 'paypal_render_seller_status', formData )
+ .then(
+ function( sellerStatus ) {
+ placeholder.innerHTML = sellerStatus;
+ }
+ ).catch(
+ function( error ) {
+ if ( 'string' === typeof error ) {
+ placeholder.innerHTML = error;
+ }
+
+ clearInterval( interval );
+ }
+ );
+ },
+ 100
+ );
+ }
+ );
+}() );
diff --git a/paypal/models/FrmPayPalLiteSettings.php b/paypal/models/FrmPayPalLiteSettings.php
new file mode 100644
index 0000000000..3f90e5c70b
--- /dev/null
+++ b/paypal/models/FrmPayPalLiteSettings.php
@@ -0,0 +1,105 @@
+set_default_options();
+ }
+
+ /**
+ * @return string
+ */
+ public function param() {
+ return 'paypal';
+ }
+
+ /**
+ * @return array
+ */
+ public function default_options() {
+ return array(
+ 'test_mode' => 1,
+ );
+ }
+
+ /**
+ * @param mixed $settings
+ *
+ * @return void
+ */
+ public function set_default_options( $settings = false ) {
+ $default_settings = $this->default_options();
+
+ if ( ! $settings ) {
+ $settings = $this->get_options();
+ } elseif ( $settings === true ) {
+ $settings = new stdClass();
+ }
+
+ if ( ! isset( $this->settings ) ) {
+ $this->settings = new stdClass();
+ }
+
+ foreach ( $default_settings as $setting => $default ) {
+ if ( is_object( $settings ) && isset( $settings->{$setting} ) ) {
+ $this->settings->{$setting} = $settings->{$setting};
+ }
+
+ if ( ! isset( $this->settings->{$setting} ) ) {
+ $this->settings->{$setting} = $default;
+ }
+ }
+ }
+
+ /**
+ * @return object
+ */
+ public function get_options() {
+ $settings = get_option( 'frm_' . $this->param() . '_options' );
+
+ if ( is_object( $settings ) ) {
+ $this->set_default_options( $settings );
+ } elseif ( $settings ) {
+ // Workaround for W3 total cache conflict.
+ $this->settings = unserialize( serialize( $settings ) );
+ } else {
+ $this->set_default_options( true );
+ $this->store();
+ }
+
+ return $this->settings;
+ }
+
+ /**
+ * @param array $params
+ *
+ * @return void
+ */
+ public function update( $params ) {
+ $settings = $this->default_options();
+
+ foreach ( $settings as $setting => $default ) {
+ if ( isset( $params[ 'frm_' . $this->param() . '_' . $setting ] ) ) {
+ $this->settings->{$setting} = sanitize_text_field( $params[ 'frm_' . $this->param() . '_' . $setting ] );
+ }
+ }
+
+ $this->settings->test_mode = isset( $params[ 'frm_' . $this->param() . '_test_mode' ] ) ? absint( $params[ 'frm_' . $this->param() . '_test_mode' ] ) : 0;
+ }
+
+ /**
+ * @return void
+ */
+ public function store() {
+ // Save the posted value in the database.
+ update_option( 'frm_' . $this->param() . '_options', $this->settings );
+ }
+}
diff --git a/paypal/views/settings/action-settings-options.php b/paypal/views/settings/action-settings-options.php
new file mode 100644
index 0000000000..368d5cc99b
--- /dev/null
+++ b/paypal/views/settings/action-settings-options.php
@@ -0,0 +1,73 @@
+post_content['pay_later'] ?? 'auto';
+?>
+
+
+
+
+
+
+
+
+ post_content['layout'] ) ? $form_action->post_content['layout'] : 'card_and_checkout'; ?>
+
+ >
+ >
+ >
+
+
+
+
+
+
+
+ >
+ >
+ >
+
+
+
+
+
+
+ post_content['entry_data_sync'] ?? 'overwrite'; ?>
+
+ >
+ >
+
+
+
+ post_content['paypal_order_email'] ) ) : ?>
+
+
+ post_content['paypal_order_name'] ) ) : ?>
+
+
+ post_content['paypal_order_address'] ) ) : ?>
+
+
+
+
+
+
+
+ post_content['shipping_preference'] ?? 'use_paypal_account_data'; ?>
+
+
+ >
+
+ >
+ >
+
+
+
+
+
diff --git a/paypal/views/settings/button-settings.php b/paypal/views/settings/button-settings.php
new file mode 100644
index 0000000000..c15220e805
--- /dev/null
+++ b/paypal/views/settings/button-settings.php
@@ -0,0 +1,74 @@
+post_content['button_color'] ?? 'default';
+$button_label = $form_action->post_content['button_label'] ?? 'paypal';
+$button_border_radius = $form_action->post_content['button_border_radius'] ?? 10;
+?>
+post_content['layout'] ) ? $form_action->post_content['layout'] : 'card_and_checkout'; ?>
+
+
+
+
+
+
+
+
+
+ >
+ >
+ >
+ >
+ >
+ >
+
+
+
+
+
+
+
+
+ >
+ >
+ >
+ >
+
+
+
+
+
+
+
+ (int) $button_border_radius,
+ 'field_attrs' => array(
+ 'id' => 'button_border_radius',
+ 'name' => $action_control->get_field_name( 'button_border_radius' ),
+ ),
+ 'input_number_attrs' => array(
+ 'class' => 'frm-w-full',
+ ),
+ 'units' => array( 'px' ),
+ )
+ );
+ ?>
+
+
+
diff --git a/paypal/views/settings/connect-settings-box.php b/paypal/views/settings/connect-settings-box.php
new file mode 100644
index 0000000000..67acd22c4b
--- /dev/null
+++ b/paypal/views/settings/connect-settings-box.php
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+ 'width: 10px; position: relative; top: 2px; margin-right: 5px;' ) );
+ esc_html_e( 'Connected', 'formidable' );
+ } else {
+ esc_html_e( 'Not configured', 'formidable' );
+ }
+ ?>
+
+
+
+
+
+
+
+
+
diff --git a/paypal/views/settings/connect-settings-container.php b/paypal/views/settings/connect-settings-container.php
new file mode 100644
index 0000000000..dca54e6940
--- /dev/null
+++ b/paypal/views/settings/connect-settings-container.php
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+= $two_days_ago;
+ }
+);
+
+if ( $recent_entries ) {
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/paypal/views/settings/form.php b/paypal/views/settings/form.php
new file mode 100644
index 0000000000..88f0bf2246
--- /dev/null
+++ b/paypal/views/settings/form.php
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/psalm.xml b/psalm.xml
index 36b91f7be2..d13b496547 100644
--- a/psalm.xml
+++ b/psalm.xml
@@ -14,6 +14,7 @@
+
@@ -33,6 +34,7 @@
+
@@ -51,7 +53,8 @@
-
+
+
@@ -63,6 +66,7 @@
+
@@ -86,6 +90,7 @@
+
@@ -94,6 +99,7 @@
+
@@ -101,6 +107,7 @@
+
@@ -109,6 +116,7 @@
+
@@ -116,6 +124,7 @@
+
@@ -133,6 +142,7 @@
+
@@ -140,6 +150,7 @@
+
@@ -147,6 +158,7 @@
+
@@ -154,6 +166,7 @@
+
@@ -161,6 +174,7 @@
+
@@ -175,6 +189,7 @@
+
@@ -187,6 +202,7 @@
+
@@ -219,6 +235,7 @@
+
@@ -226,6 +243,7 @@
+
@@ -233,6 +251,7 @@
+
@@ -240,6 +259,7 @@
+
@@ -247,6 +267,7 @@
+
@@ -254,6 +275,7 @@
+
@@ -261,6 +283,7 @@
+
@@ -269,6 +292,7 @@
+
@@ -276,6 +300,7 @@
+
@@ -283,6 +308,7 @@
+
@@ -290,6 +316,7 @@
+
@@ -297,6 +324,7 @@
+
@@ -304,6 +332,7 @@
+
@@ -311,6 +340,7 @@
+
@@ -319,6 +349,7 @@
+
@@ -326,6 +357,7 @@
+
@@ -342,6 +374,7 @@
+
@@ -349,6 +382,7 @@
+
@@ -356,6 +390,7 @@
+
@@ -369,6 +404,7 @@
+
@@ -376,6 +412,7 @@
+
@@ -383,6 +420,7 @@
+
@@ -449,6 +487,7 @@
+
@@ -456,6 +495,7 @@
+
@@ -500,6 +540,8 @@
+
+
@@ -507,6 +549,8 @@
+
+
diff --git a/rector.php b/rector.php
index d8eb684b7c..2e409197dc 100644
--- a/rector.php
+++ b/rector.php
@@ -90,6 +90,7 @@
__DIR__ . '/classes',
__DIR__ . '/stripe',
__DIR__ . '/square',
+ __DIR__ . '/paypal',
__DIR__ . '/css',
__DIR__ . '/tests',
)
diff --git a/resources/scss/admin/components/form/_form-actions.scss b/resources/scss/admin/components/form/_form-actions.scss
index e097cad53a..f6e257dac1 100644
--- a/resources/scss/admin/components/form/_form-actions.scss
+++ b/resources/scss/admin/components/form/_form-actions.scss
@@ -220,3 +220,16 @@
}
}
}
+
+.frm_square_action .frm_square_icon {
+ position: relative;
+ top: 2px;
+ left: 1px;
+ zoom: 1.2;
+}
+
+.frm-border-icon .frm_square_icon {
+ width: 22px;
+ height: 22px;
+ overflow: visible;
+}
diff --git a/resources/scss/admin/components/icons/_circled-icons.scss b/resources/scss/admin/components/icons/_circled-icons.scss
index 411feda621..cb590c3dbd 100644
--- a/resources/scss/admin/components/icons/_circled-icons.scss
+++ b/resources/scss/admin/components/icons/_circled-icons.scss
@@ -59,6 +59,10 @@
height: 14px;
}
}
+
+ &:has(.frm-inverse) {
+ border-color: transparent;
+ }
}
.frm-upgrade-message img {
diff --git a/square/controllers/FrmSquareLiteActionsController.php b/square/controllers/FrmSquareLiteActionsController.php
index c4d1a9cf65..25af41567c 100644
--- a/square/controllers/FrmSquareLiteActionsController.php
+++ b/square/controllers/FrmSquareLiteActionsController.php
@@ -116,7 +116,7 @@ public static function trigger_gateway( $action, $entry, $form ) {
}
if ( ! self::square_is_configured() ) {
- $response['error'] = __( 'There was a problem communicating with Square. Please try again.', 'formidable' );
+ $response['error'] = __( 'Square still needs to be configured.', 'formidable' );
return $response;
}
@@ -694,17 +694,7 @@ public static function remove_cc_validation( $errors, $field, $values ) {
return $errors;
}
- $field_id = $field->temp_id ?? $field->id;
-
- if ( isset( $errors[ 'field' . $field_id . '-cc' ] ) ) {
- unset( $errors[ 'field' . $field_id . '-cc' ] );
- }
-
- if ( isset( $errors[ 'field' . $field_id ] ) ) {
- unset( $errors[ 'field' . $field_id ] );
- }
-
- return $errors;
+ return FrmTransLiteActionsController::remove_cc_errors( $errors, $field );
}
/**
diff --git a/square/helpers/FrmSquareLiteConnectHelper.php b/square/helpers/FrmSquareLiteConnectHelper.php
index a9c8e3c222..6ed12ec2fe 100644
--- a/square/helpers/FrmSquareLiteConnectHelper.php
+++ b/square/helpers/FrmSquareLiteConnectHelper.php
@@ -72,7 +72,7 @@ private static function render_settings_for_mode( $mode ) {
// phpcs:disable Generic.WhiteSpace.ScopeIndent
?>
-
+
temp_id ?? $field->id;
-
- if ( isset( $errors[ 'field' . $field_id . '-cc' ] ) ) {
- unset( $errors[ 'field' . $field_id . '-cc' ] );
- }
-
- if ( isset( $errors[ 'field' . $field_id ] ) ) {
- unset( $errors[ 'field' . $field_id ] );
- }
-
- return $errors;
+ return FrmTransLiteActionsController::remove_cc_errors( $errors, $field );
}
}
diff --git a/stripe/controllers/FrmTransLiteActionsController.php b/stripe/controllers/FrmTransLiteActionsController.php
index 2b1bb9ec4d..8632ebbf66 100755
--- a/stripe/controllers/FrmTransLiteActionsController.php
+++ b/stripe/controllers/FrmTransLiteActionsController.php
@@ -662,4 +662,26 @@ private static function get_field_order_before_submit( $form_id, $field_order )
FrmField::update( $submit_field->id, array( 'field_order' => $submit_order + 1 ) );
return $submit_order;
}
+
+ /**
+ * Remove credit card validation errors.
+ *
+ * @param array $errors
+ * @param stdClass $field
+ *
+ * @return array
+ */
+ public static function remove_cc_errors( $errors, $field ) {
+ $field_id = $field->temp_id ?? $field->id;
+
+ if ( isset( $errors[ 'field' . $field_id . '-cc' ] ) ) {
+ unset( $errors[ 'field' . $field_id . '-cc' ] );
+ }
+
+ if ( isset( $errors[ 'field' . $field_id ] ) ) {
+ unset( $errors[ 'field' . $field_id ] );
+ }
+
+ return $errors;
+ }
}
diff --git a/stripe/controllers/FrmTransLiteHooksController.php b/stripe/controllers/FrmTransLiteHooksController.php
index 695dfb3a19..85d460e978 100755
--- a/stripe/controllers/FrmTransLiteHooksController.php
+++ b/stripe/controllers/FrmTransLiteHooksController.php
@@ -39,13 +39,29 @@ public static function load_admin_hooks() {
if ( class_exists( 'FrmTransHooksController', false ) ) {
add_action( 'frm_pay_show_square_options', 'FrmTransLiteAppController::add_repeat_cadence_value' );
+ add_action( 'frm_pay_show_stripe_options', 'FrmStrpLiteActionsController::add_action_options' );
+
remove_action( 'admin_head', 'FrmTransListsController::add_list_hooks' );
add_action( 'admin_head', 'FrmTransLiteListsController::add_list_hooks' );
self::maybe_set_admin_menu();
+ if ( self::on_form_settings_page() ) {
+ $gateways = array_keys( FrmTransLiteAppHelper::get_gateways() );
+
+ // If no additional gateways (Like Authorize.Net) are set, hide the Collect Payment action.
+ // Since we have icons for Stripe, Square, and PayPal, we don't need the Collect Payment action.
+ if ( ! array_diff( $gateways, array( 'stripe', 'square', 'paypal' ) ) ) {
+ self::hide_collect_payment_action();
+ }
+ }
+
// Exit early, let the Payments submodule handle everything else.
return;
+ }//end if
+
+ if ( self::on_form_settings_page() ) {
+ self::hide_collect_payment_action();
}
// Actions.
@@ -65,6 +81,30 @@ public static function load_admin_hooks() {
}
}
+ /**
+ * @since x.x
+ *
+ * @return bool
+ */
+ private static function on_form_settings_page() {
+ return 'formidable' === FrmAppHelper::simple_get( 'page' ) && 'settings' === FrmAppHelper::simple_get( 'frm_action' );
+ }
+
+ /**
+ * Hide the Collect Payment action if there are no additional gateways enabled (like Authorize.Net).
+ *
+ * @since x.x
+ *
+ * @return void
+ */
+ private static function hide_collect_payment_action() {
+ echo '
+
+ ';
+ }
+
/**
* @since 6.27
*
diff --git a/stripe/controllers/FrmTransLitePaymentsController.php b/stripe/controllers/FrmTransLitePaymentsController.php
index 8f81588453..27e332d458 100755
--- a/stripe/controllers/FrmTransLitePaymentsController.php
+++ b/stripe/controllers/FrmTransLitePaymentsController.php
@@ -208,29 +208,114 @@ public static function refund_payment() {
wp_die( esc_html__( 'Oops! No payment was selected for refund.', 'formidable' ) );
}
- $frm_payment = new FrmTransLitePayment();
- $payment = $frm_payment->get_one( $payment_id );
+ $payment = ( new FrmTransLitePayment() )->get_one( $payment_id );
+
+ if ( ! $payment ) {
+ wp_die( esc_html__( 'Oops! That payment does not exist.', 'formidable' ) );
+ }
- switch ( $payment->paysys ) {
+ $refunded = false;
+ $reason = '';
+ $debug_id = '';
+ $paysys = $payment->paysys;
+
+ switch ( $paysys ) {
case 'stripe':
$refunded = FrmStrpLiteAppHelper::call_stripe_helper_class( 'refund_payment', $payment->receipt_id );
break;
case 'square':
$refunded = FrmSquareLiteConnectHelper::refund_payment( $payment->receipt_id );
+ break;
+ case 'paypal':
+ $response = FrmPayPalLiteConnectHelper::refund_payment( $payment->receipt_id );
+
+ // Check for structured error response with message and debug_id
+ if ( is_object( $response ) && isset( $response->message ) && isset( $response->debug_id ) ) {
+ $refunded = false;
+ $reason = $response->message;
+ $debug_id = $response->debug_id;
+ } elseif ( false === $response ) {
+ $refunded = false;
+ $reason = self::get_paypal_refund_reason();
+ $debug_id = FrmPayPalLiteConnectHelper::get_latest_debug_id_from_paypal_api();
+ } elseif ( is_object( $response ) && isset( $response->refund_error ) ) {
+ // Handle mock error responses from PayPal API
+ $refunded = false;
+ $reason = $response->message ?? '';
+ $debug_id = $response->debug_id ?? '';
+ } else {
+ $refunded = true;
+ }
+
break;
default:
$refunded = false;
break;
- }
+ }//end switch
if ( $refunded ) {
self::change_payment_status( $payment, 'refunded' );
$message = __( 'Refunded', 'formidable' );
} else {
- $message = __( 'Failed', 'formidable' );
+ // If the reason is already a complete error message, use it directly
+ // instead of wrapping it redundantly in "Refund Failed (...)"
+ if ( $reason && ! preg_match( '/^[A-Z_]+$/', $reason ) ) {
+ $message = $reason;
+ } else {
+ $message = __( 'Refund Failed', 'formidable' );
+ if ( ! empty( $reason ) ) {
+ $message .= ' (' . $reason . ')';
+ }
+ }
+ }
+
+ if ( ! empty( $debug_id ) ) {
+ $message .= ' Debug ID: ' . esc_html( $debug_id );
}
- wp_die( esc_html( $message ) );
+ wp_die(
+ sprintf(
+ '%2$s
',
+ $refunded ? 'frm_updated_message' : 'frm_error_style',
+ $message
+ )
+ );
+ }
+
+ /**
+ * Get a human-friendly reason from the latest PayPal refund error.
+ *
+ * Handles both uppercase issue codes (e.g. REFUND_FAILED_INSUFFICIENT_FUNDS)
+ * and human-friendly description strings from the PayPal API.
+ * Strips the {{debug_id:...}} token if present.
+ *
+ * @since x.x
+ *
+ * @return string
+ */
+ private static function get_paypal_refund_reason() {
+ $error = FrmPayPalLiteConnectHelper::get_latest_error_from_paypal_api();
+ if ( ! $error ) {
+ return '';
+ }
+
+ $error = preg_replace( '/\{\{debug_id:[^}]+\}\}/', '', $error );
+ $error = trim( $error );
+
+ if ( preg_match( '/^[A-Z_]+$/', $error ) ) {
+ return self::convert_uppercase_underscores_to_ucwords( $error, array( 'REFUND_FAILED_', 'REFUND_' ) );
+ }
+
+ return $error;
+ }
+
+ private static function convert_uppercase_underscores_to_ucwords( $error, $prefixes_to_strip = array() ) {
+ if ( ! preg_match( '/^[A-Z_]+$/', $error ) ) {
+ return '';
+ }
+
+ $reason = str_replace( $prefixes_to_strip, '', $error );
+ return ucwords( strtolower( str_replace( '_', ' ', $reason ) ) );
}
/**
@@ -251,4 +336,18 @@ public static function change_payment_status( $payment, $status ) {
$frm_payment->update( $payment->id, array( 'status' => $status ) );
FrmTransLiteActionsController::trigger_payment_status_change( compact( 'status', 'payment' ) );
}
+
+ /**
+ * @since x.x
+ *
+ * @param array|string $expected_gateways
+ * @param array|string $selected_gateways
+ *
+ * @return void
+ */
+ public static function maybe_hide_payment_setting( $expected_gateways, $selected_gateways ) {
+ if ( ! array_intersect( (array) $expected_gateways, (array) $selected_gateways ) ) {
+ echo ' frm_hidden';
+ }
+ }
}
diff --git a/stripe/controllers/FrmTransLiteSubscriptionsController.php b/stripe/controllers/FrmTransLiteSubscriptionsController.php
index da2298cfdc..d69d30e9a2 100755
--- a/stripe/controllers/FrmTransLiteSubscriptionsController.php
+++ b/stripe/controllers/FrmTransLiteSubscriptionsController.php
@@ -104,6 +104,9 @@ public static function cancel_subscription() {
$sub = $frm_sub->get_one( $sub_id );
if ( $sub ) {
+ $reason = '';
+ $debug_id = '';
+
switch ( $sub->paysys ) {
case 'stripe':
$canceled = FrmStrpLiteAppHelper::call_stripe_helper_class( 'cancel_subscription', $sub->sub_id );
@@ -111,6 +114,32 @@ public static function cancel_subscription() {
case 'square':
$canceled = FrmSquareLiteConnectHelper::cancel_subscription( $sub->sub_id );
break;
+ case 'paypal':
+ $response = FrmPayPalLiteConnectHelper::cancel_subscription( $sub->sub_id );
+
+ // Check for structured error response with message and debug_id (array or object)
+ $reason = '';
+ $debug_id = '';
+ $canceled = false !== $response;
+
+ if ( is_array( $response ) || is_object( $response ) ) {
+ // Extract error details without type checks to avoid Mago type narrowing
+ $response_array = is_array( $response ) ? $response : (array) $response;
+ $reason = $response_array['message'] ?? '';
+ // PayPal API returns debug_id (snake_case) in some cases and debugId (camelCase) in others
+ $debug_id = $response_array['debug_id'] ?? $response_array['debugId'] ?? '';
+
+ // If there's an error message or debug_id, the cancellation failed
+ if ( $reason || $debug_id ) {
+ $canceled = false;
+ }
+ } elseif ( false === $response ) {
+ // Response is false, get error from static properties
+ $reason = FrmPayPalLiteConnectHelper::get_latest_error_from_paypal_api();
+ $debug_id = FrmPayPalLiteConnectHelper::get_latest_debug_id_from_paypal_api();
+ $canceled = false;
+ }
+ break;
default:
$canceled = false;
break;
@@ -126,7 +155,20 @@ public static function cancel_subscription() {
$message = __( 'Canceled', 'formidable' );
} else {
- $message = __( 'Failed', 'formidable' );
+ // If the reason is already a complete error message, use it directly
+ // instead of wrapping it redundantly in "Failed (...)"
+ if ( $reason && ! preg_match( '/^[A-Z_]+$/', $reason ) ) {
+ $message = $reason;
+ } else {
+ $message = __( 'Failed', 'formidable' );
+ if ( ! empty( $reason ) ) {
+ $message .= ' (' . $reason . ')';
+ }
+ }
+ }
+
+ if ( ! empty( $debug_id ) ) {
+ $message .= ' Debug ID: ' . esc_html( $debug_id );
}
} else {
$message = __( 'That subscription was not found', 'formidable' );
@@ -135,8 +177,13 @@ public static function cancel_subscription() {
$message = __( 'Oops! No subscription was selected for cancelation.', 'formidable' );
}//end if
- echo esc_html( $message );
- wp_die();
+ wp_die(
+ sprintf(
+ '%2$s
',
+ $canceled ? 'frm_updated_message' : 'frm_error_style',
+ $message
+ )
+ );
}
/**
@@ -154,6 +201,45 @@ public static function change_subscription_status( $atts ) {
FrmTransLiteActionsController::trigger_subscription_status_change( $atts['sub'] );
}
+ /**
+ * Extract error details from a PayPal response.
+ *
+ * @since x.x
+ *
+ * @param mixed $response The response from PayPal.
+ *
+ * @return array|false Array with 'reason' and 'debug_id' keys, or false if no error details.
+ */
+ private static function extract_error_details( $response ) {
+ $reason = '';
+ $debug_id = '';
+
+ if ( is_array( $response ) ) {
+ if ( ! empty( $response['message'] ) ) {
+ $reason = $response['message'];
+ }
+ if ( ! empty( $response['debug_id'] ) ) {
+ $debug_id = $response['debug_id'];
+ }
+ } elseif ( is_object( $response ) ) {
+ if ( ! empty( $response->message ) ) {
+ $reason = $response->message;
+ }
+ if ( ! empty( $response->debug_id ) ) {
+ $debug_id = $response->debug_id;
+ }
+ }
+
+ if ( $reason || $debug_id ) {
+ return array(
+ 'reason' => $reason,
+ 'debug_id' => $debug_id,
+ );
+ }
+
+ return false;
+ }
+
/**
* @deprecated 6.27
*
diff --git a/stripe/helpers/FrmStrpLiteAppHelper.php b/stripe/helpers/FrmStrpLiteAppHelper.php
index ab0d97aba3..8e6a54f267 100644
--- a/stripe/helpers/FrmStrpLiteAppHelper.php
+++ b/stripe/helpers/FrmStrpLiteAppHelper.php
@@ -139,8 +139,22 @@ public static function not_connected_warning() {
', '', '', ' ' ); // phpcs:ignore SlevomatCodingStandard.Files.LineLength.LineTooLong
+ printf(
+ /* translators: %1$s: Link HTML, %2$s: End link */
+ esc_html__( 'Credit Cards will not work without sconnecting %1$sStripe%2$s, %3$sSquare%4$s, or %5$sPayPal%6$s first.', 'formidable' ),
+ // %1$s
+ '',
+ // %2$s
+ ' ',
+ // %3$s
+ '',
+ // %4$s
+ ' ',
+ // %5$s
+ '',
+ // %6$s
+ ' '
+ );
?>
diff --git a/stripe/helpers/FrmStrpLiteConnectHelper.php b/stripe/helpers/FrmStrpLiteConnectHelper.php
index cb3c85616e..ef6cdaf5fe 100644
--- a/stripe/helpers/FrmStrpLiteConnectHelper.php
+++ b/stripe/helpers/FrmStrpLiteConnectHelper.php
@@ -154,10 +154,6 @@ private static function post_to_connect_server( $action, $additional_body = arra
$url = self::get_url_to_connect_server();
$headers = self::build_headers_for_post();
- if ( ! $headers ) {
- return 'Unable to build headers for post. Is your pro license configured properly?';
- }
-
// (Seconds) default timeout is 5. we want a bit more time to work with.
$timeout = 45;
diff --git a/stripe/helpers/FrmTransLiteAppHelper.php b/stripe/helpers/FrmTransLiteAppHelper.php
index 561d6c30c2..b7c12c35a1 100755
--- a/stripe/helpers/FrmTransLiteAppHelper.php
+++ b/stripe/helpers/FrmTransLiteAppHelper.php
@@ -604,4 +604,41 @@ public static function should_fallback_to_paypal() {
_deprecated_function( __METHOD__, '6.27' );
return false;
}
+
+ /**
+ * Render the gateway icon buttons for the payment action settings.
+ *
+ * @param array $gateways
+ * @param WP_Post $form_action
+ * @param FrmFormAction $action_control
+ *
+ * @return void
+ */
+ public static function show_gateway_buttons( $gateways, $form_action, $action_control ) {
+ $gateway_order = array( 'stripe', 'square', 'paypal' );
+ $gateways = self::sort_gateways( $gateways, $gateway_order );
+
+ include self::plugin_path() . '/views/action-settings/gateway-buttons.php';
+ }
+
+ /**
+ * Sort gateways by a predefined order.
+ * Unlisted gateways are appended at the end.
+ *
+ * @param array $gateways
+ * @param array $order Gateway keys in desired order.
+ *
+ * @return array
+ */
+ private static function sort_gateways( $gateways, $order ) {
+ $sorted = array();
+
+ foreach ( $order as $key ) {
+ if ( isset( $gateways[ $key ] ) ) {
+ $sorted[ $key ] = $gateways[ $key ];
+ }
+ }
+
+ return $sorted + $gateways;
+ }
}
diff --git a/stripe/helpers/FrmTransLiteListHelper.php b/stripe/helpers/FrmTransLiteListHelper.php
index 93a2c9b1e4..91c3013df9 100755
--- a/stripe/helpers/FrmTransLiteListHelper.php
+++ b/stripe/helpers/FrmTransLiteListHelper.php
@@ -623,13 +623,6 @@ private function get_paysys_column( $item, $atts ) {
return $atts['gateways'][ $item->paysys ]['label'];
}
- if ( 'paypal' === $item->paysys ) {
- // The PayPal add-on does not use a gateway.
- // This should be safe to remove once we release
- // PayPal Commerce in Lite.
- return 'PayPal';
- }
-
return $item->paysys;
}
diff --git a/stripe/js/frmtrans_admin.js b/stripe/js/frmtrans_admin.js
index 752bfe4575..b6946a4a2e 100755
--- a/stripe/js/frmtrans_admin.js
+++ b/stripe/js/frmtrans_admin.js
@@ -18,36 +18,44 @@
function toggleOpts( opt, show, c ) {
const opts = jQuery( opt ).closest( '.frm_form_action_settings' ).find( c );
if ( show ) {
- opts.show();
+ opts.css( 'display', '' );
+ opts.removeClass( 'frm_hidden' );
} else {
- opts.hide();
+ opts.css( 'display', 'none' );
+ opts.addClass( 'frm_hidden' );
}
}
function toggleGateway() {
- if ( ! this.checked ) {
- return;
- }
-
const gateway = this.value;
const { checked } = this;
toggleOpts( this, checked, `.show_${ gateway }` );
- const toggleOff = 'stripe' === gateway ? 'square' : 'stripe';
+ const gateways = [ 'stripe', 'square', 'paypal' ];
+ const toggleOff = gateways.filter( g => g !== gateway );
+
const settings = jQuery( this ).closest( '.frm_form_action_settings' );
const showClass = `show_${ settings.find( '.frm_gateway_opt input:checked' ).attr( 'value' ) }`;
- const gatewaySettings = settings.get( 0 ).querySelectorAll( `.show_${ toggleOff }` );
- gatewaySettings.forEach(
- setting => {
- if ( ! setting.classList.contains( showClass ) ) {
- setting.style.display = 'none';
- }
+ toggleOff.forEach(
+ function( gateway ) {
+ const gatewaySettings = settings.get( 0 ).querySelectorAll( `.show_${ gateway }` );
+ gatewaySettings.forEach(
+ setting => {
+ if ( ! setting.classList.contains( showClass ) ) {
+ setting.style.display = 'none';
+ }
+ }
+ );
}
);
wp.hooks.doAction( 'frm_trans_toggled_gateway', { gateway, checked, settings } );
+
+ document.querySelectorAll( '.frm-billing-section-heading' ).forEach( function( el ) {
+ el.textContent = gateway === 'paypal' ? el.dataset.billingLabel : el.dataset.customerLabel;
+ } );
}
function frmTransLiteAdminJS() {
@@ -56,7 +64,19 @@
const actions = document.getElementById( 'frm_notification_settings' );
if ( actions ) {
jQuery( actions ).on( 'change', '.frm_trans_type', toggleSub );
- jQuery( '.frm_form_settings' ).on( 'change', '.frm_gateway_opt input', toggleGateway );
+
+ document.addEventListener(
+ 'change',
+ function( event ) {
+ if ( ! event.target || ! event.target.checked || 'radio' !== event.target.type ) {
+ return;
+ }
+
+ if ( event.target.closest( '.frm-long-icon-buttons' ) && event.target.closest( '.frm_form_action_settings' ) ) {
+ toggleGateway.call( event.target );
+ }
+ }
+ );
}
document.querySelectorAll( '.frm_trans_ajax_link' ).forEach(
diff --git a/stripe/models/FrmTransLiteAction.php b/stripe/models/FrmTransLiteAction.php
index 95b4f31c4b..9c36f0c6ab 100755
--- a/stripe/models/FrmTransLiteAction.php
+++ b/stripe/models/FrmTransLiteAction.php
@@ -87,6 +87,7 @@ public function get_defaults() {
'credit_card' => '',
'billing_first_name' => '',
'billing_last_name' => '',
+ 'entry_data_sync' => 'overwrite',
);
return (array) apply_filters( 'frm_pay_action_defaults', $defaults );
}
@@ -206,12 +207,14 @@ public function show_fields_dropdown( $form_atts, $field_atts ) {
if ( 'name' === $field->type && isset( $field_atts['name'] ) ) {
switch ( $field_atts['name'] ) {
case 'billing_first_name':
+ case 'shipping_first_name':
echo ' (';
esc_html_e( 'First', 'formidable' );
echo ')';
break;
case 'billing_last_name':
+ case 'shipping_last_name':
echo ' (';
esc_html_e( 'Last', 'formidable' );
echo ')';
diff --git a/stripe/views/action-settings/gateway-buttons.php b/stripe/views/action-settings/gateway-buttons.php
new file mode 100644
index 0000000000..6506566d31
--- /dev/null
+++ b/stripe/views/action-settings/gateway-buttons.php
@@ -0,0 +1,46 @@
+
+
+ $gateway ) {
+ $is_active = in_array( $gateway_name, (array) $form_action->post_content['gateway'], true );
+ $name = $gateway['label'] ?? ucfirst( $gateway_name );
+ $gateway_classes = $gateway['recurring'] ? '' : 'frm_gateway_no_recur';
+
+ if ( $form_action->post_content['type'] === 'recurring' && ! $gateway['recurring'] ) {
+ $gateway_classes .= ' frm_hidden';
+ }
+
+ $toggle_id = "frm_toggle_{$gateway_name}_settings";
+
+ $input_params = array(
+ 'id' => $toggle_id,
+ 'type' => 'radio',
+ 'name' => $action_control->get_field_name( 'gateway' ),
+ 'value' => $gateway_name,
+ );
+
+ if ( $is_active ) {
+ $input_params['checked'] = 'checked';
+ }
+
+ $label_params = array(
+ 'for' => $toggle_id,
+ 'class' => trim( 'frm_payment_settings_tab frm_gateway_opt ' . $gateway_classes ),
+ 'tabindex' => '0',
+ 'role' => 'tab',
+ 'aria-selected' => $is_active ? 'true' : 'false',
+ );
+ ?>
+ />
+ >
+
+
+
+
+
diff --git a/stripe/views/action-settings/payments-options.php b/stripe/views/action-settings/payments-options.php
index 618da07dc2..6d9b3bfc73 100755
--- a/stripe/views/action-settings/payments-options.php
+++ b/stripe/views/action-settings/payments-options.php
@@ -5,6 +5,7 @@
$stripe_connected = FrmStrpLiteConnectHelper::at_least_one_mode_is_setup();
$square_connected = FrmSquareLiteConnectHelper::at_least_one_mode_is_setup();
+$paypal_connected = FrmPayPalLiteConnectHelper::at_least_one_mode_is_setup();
if ( $stripe_connected ) {
FrmStrpLiteAppHelper::fee_education( 'stripe-action-tip', $form_action->post_content['gateway'] );
@@ -14,135 +15,229 @@
FrmSquareLiteAppHelper::fee_education( 'square-action-tip', $form_action->post_content['gateway'] );
}
-if ( ! $stripe_connected && ! $square_connected ) {
+if ( $paypal_connected ) {
+ FrmPayPalLiteAppHelper::fee_education( 'paypal-action-tip', $form_action->post_content['gateway'] );
+}
+
+if ( ! $stripe_connected && ! $square_connected && ! $paypal_connected ) {
FrmStrpLiteAppHelper::not_connected_warning();
}
?>
+ 1 ) {
+ FrmTransLiteAppHelper::show_gateway_buttons( $gateways, $form_action, $action_control );
+}
+?>
+
+ID ) && empty( $form_action->post_content['amount'] ) ) :
+ ?>
+
+ 'width:24px' ) ); ?>
+
+
+
+
+
+
+
+
+
+ post_content['type'], 'one_time' ); ?>>
+ post_content['type'], 'recurring' ); ?>>
+
+
+
-
+
-
+ *
-
+
- get_credit_card_field_id( $field_dropdown_atts ); ?>
-
-
-
-
-
-
- post_content['type'], 'one_time' ); ?>>
- post_content['type'], 'recurring' ); ?>>
-
-
-
- echo_capture_payment_upsell( $form_action->post_content['gateway'] ); ?>
-
-
-
-
+
+
-
-
-
-
- $v ) { ?>
- post_content['interval'], $k ); ?>>
-
-
-
-
-
+ get_field_id( 'currency' ), $action_control->get_field_name( 'currency' ), $form_action->post_content ); ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- get_field_id( 'currency' ), $this->get_field_name( 'currency' ), $form_action->post_content ); ?>
-
-
$gateway ) {
$gateway_classes = $gateway['recurring'] ? '' : 'frm_gateway_no_recur';
$gateway_classes .= $form_action->post_content['type'] === 'recurring' && ! $gateway['recurring'] ? ' frm_hidden' : '';
- $gateway_id = $this->get_field_id( 'gateways' ) . '_' . $gateway_name;
-
- $radio_atts = array(
+ $gateway_id = $action_control->get_field_id( 'gateways' ) . '_' . $gateway_name;
+ $radio_atts = array(
'type' => 'radio',
'value' => $gateway_name,
- 'name' => $this->get_field_name( 'gateway' ),
+ 'name' => $action_control->get_field_name( 'gateway' ),
'id' => $gateway_id,
);
?>
-
- post_content['gateway'], $gateway_name );
- ?>
- />
-
-
+
+ post_content['gateway'], $gateway_name );
+ ?>
+ />
+
+
+
$form_action,
- 'action_control' => $this,
+ 'action_control' => $action_control,
+ )
+ );
+ ?>
+
+ get_credit_card_field_id( $field_dropdown_atts ); ?>
+
+
+ echo_capture_payment_upsell( $form_action->post_content['gateway'] ); ?>
+
+
+
+
+ ID ) && 'recurring' === $form_action->post_content['type'] && in_array( 'paypal', (array) $form_action->post_content['gateway'], true ) && empty( $form_action->post_content['product_name'] ) ) :
+ ?>
+
+ 'width:24px' ) ); ?>
+
+
+
+
+ $form_action,
+ 'action_control' => $action_control,
+ )
+ );
+ ?>
+
+
+
+
+
+
+
+
+
+ $v ) { ?>
+ post_content['interval'], $k ); ?>>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $form_action,
+ 'action_control' => $action_control,
)
);
?>
+
+
diff --git a/stubs.php b/stubs.php
index f39b43a35d..6bf92cec99 100644
--- a/stubs.php
+++ b/stubs.php
@@ -513,6 +513,18 @@ public static function enqueue_pro_web_components_script(){
}
}
+ /**
+ * This class is in the PayPal add-on.
+ */
+ class FrmPaymentSettingsController {
+ /**
+ * @return void
+ */
+ public static function route() {
+
+ }
+ }
+
class WP_UnitTestCase_Base extends PHPUnit\Framework\TestCase {
}